/**
 * Mensajes inline unificados (éxito verde / error rojo).
 * Usado en Divisas, Login, Usuario y demás módulos migrados.
 */

.app-form-msg,
.divisas-form-msg,
.divisas-inline-msg {
  display: none;
  margin: 0.5rem auto;
  padding: 0.4rem 0.55rem;
  font-size: 0.72rem;
  line-height: 1.35;
  text-align: center;
  border-radius: 3px;
  box-sizing: border-box;
}

.app-form-msg {
  max-width: 480px;
  margin-left: auto;
  margin-right: auto;
}

.divisas-form-msg {
  max-width: 480px;
}

.divisas-inline-msg {
  max-width: 100%;
  margin-bottom: 0.45rem;
}

.app-form-msg.is-visible,
.divisas-form-msg.is-visible,
.divisas-inline-msg.is-visible {
  display: block;
}

.app-form-msg--ok,
.divisas-form-msg--ok {
  color: #2f6b3a;
  background: #e8f4ea;
  border: 1px solid #b8d9be;
}

.app-form-msg--error,
.divisas-form-msg--error {
  color: #842029;
  background: #fdecec;
  border: 1px solid #e8b4b8;
}

.app-form-msg--aviso,
.divisas-form-msg--aviso {
  color: #6b5900;
  background: #fff8e6;
  border: 1px solid #e6c200;
}

/* Loader discreto (Usuario, Giros, reportes, etc.) */
.app-loading-wrap,
.usuario-loading-wrap,
.giros-loading-wrap {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  min-height: 64px;
  padding: 0.15rem 0;
}

.app-loading,
.usuario-loading,
.giros-loading {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.38rem;
  margin: 0 auto;
  padding: 0;
  min-height: 0;
  border: 0;
  background: transparent;
  color: #6b7280;
  font-size: 0.82rem;
  font-weight: 500;
}

.app-loading::before,
.usuario-loading::before,
.giros-loading::before {
  content: "";
  width: 11px;
  height: 11px;
  border: 2px solid rgba(160, 28, 38, 0.18);
  border-top-color: rgba(160, 28, 38, 0.78);
  border-radius: 50%;
  animation: app-loading-spin 0.8s linear infinite;
}

@keyframes app-loading-spin {
  to {
    transform: rotate(360deg);
  }
}
