/* ============================================================================
   AVISOS DE OPERAÇÃO (v236)

   Sem confirmação, toda operação parece que não aconteceu: a pessoa salva,
   nada muda na tela, e ela refaz ou vai conferir. O R&S já resolvia isso com
   um aviso no canto (`.toast` em empresa/workspace.css); o CV Oficial escrevia
   uma linha discreta dentro do modal, que some junto com ele.

   Esta camada traz o MESMO padrão para o lado do candidato: canto inferior
   direito, some sozinho, vermelho para falha. A diferença é a variante VERDE
   de sucesso, que não existia em nenhum dos dois: "deu certo" e "aconteceu
   alguma coisa" eram a mesma cor.

   Cor nunca é o único sinal: cada aviso traz um ícone e o texto diz o que
   houve, para quem não distingue verde de vermelho e para leitor de tela.
   ========================================================================== */

.cv-avisos {
  position: fixed;
  z-index: 2147483000; /* acima dos modais, senão o aviso nasce atrás deles */
  right: 16px;
  bottom: 16px;
  display: grid;
  gap: 8px;
  width: min(380px, calc(100vw - 32px));
  pointer-events: none;
}

.cv-aviso {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: 10px;
  padding: 12px 14px;
  border-radius: 10px;
  border-left: 4px solid #4a7fd0;
  background: #0d1f4c;
  color: #fff;
  font: 700 12.5px/1.45 Arial, sans-serif;
  box-shadow: 0 12px 30px rgba(7, 18, 36, 0.34);
  pointer-events: auto;
  /* entra de baixo e some sozinho; quem pediu menos movimento não vê nada */
  animation: cv-aviso-entra .22s ease-out;
}

@keyframes cv-aviso-entra {
  from { opacity: 0; transform: translateY(10px); }
  to   { opacity: 1; transform: none; }
}

@media (prefers-reduced-motion: reduce) {
  .cv-aviso { animation: none; }
}

.cv-aviso.is-saindo {
  opacity: 0;
  transition: opacity .25s ease;
}

.cv-aviso-icone {
  width: 17px;
  height: 17px;
  margin-top: 1px;
  flex: 0 0 auto;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.cv-aviso-texto {
  min-width: 0;
  overflow-wrap: anywhere;
}

.cv-aviso.is-ok {
  background: #14532d;
  border-left-color: #4ade80;
}

.cv-aviso.is-erro {
  background: #692229;
  border-left-color: #f08c94;
}

@media (max-width: 640px) {
  .cv-avisos {
    right: 12px;
    left: 12px;
    bottom: 12px;
    width: auto;
  }
}
