/* Alertas modernas y validación visual - MovilGSM */
/* Base */
.alert-modern {
  border: none;
  border-radius: 12px;
  padding: .75rem 1rem;
  box-shadow: 0 8px 20px rgba(0,0,0,.06);
  position: relative;
  overflow: hidden;
}

.alert-modern.fade-in { animation: alertFade .18s ease-out; }
@keyframes alertFade { from { opacity: 0; transform: translateY(-2px); } to { opacity: 1; transform: none; } }

.alert-modern::before {
  content: '';
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 6px;
  border-radius: 12px 0 0 12px;
  background: currentColor;
  opacity: .35;
}

.alert-modern .btn-close { filter: invert(.35); }
.alert-modern i { margin-right: .5rem; }

/* Paletas suaves por tipo */
.alert-modern.alert-success { background: linear-gradient(90deg,#e8fff2,#d9f7e8); color:#0f5132; }
.alert-modern.alert-danger  { background: linear-gradient(90deg,#fff0f2,#fde1e5); color:#842029; }
.alert-modern.alert-warning { background: linear-gradient(90deg,#fff8e1,#fff3cd); color:#664d03; }
.alert-modern.alert-info    { background: linear-gradient(90deg,#e6f7ff,#d7f0ff); color:#055160; }

/* Variantes extra suaves (opcional) */
.alert-soft-success{ background: linear-gradient(90deg,#f0fff4,#e6ffed); color:#146c43; border:0; }
.alert-soft-danger { background: linear-gradient(90deg,#fff5f7,#ffe9ed); color:#b02a37; border:0; }
.alert-soft-warning{ background: linear-gradient(90deg,#fffbea,#fff3cd); color:#946200; border:0; }
.alert-soft-info   { background: linear-gradient(90deg,#f0fbff,#e6f7ff); color:#055160; border:0; }

/* Inputs con estados de validación */
.form-control.is-invalid, .form-select.is-invalid {
  border-color: #dc3545 !important;
  box-shadow: 0 0 0 .15rem rgba(220,53,69,.15);
}
.form-control.is-valid, .form-select.is-valid {
  border-color: #198754 !important;
  box-shadow: 0 0 0 .15rem rgba(25,135,84,.15);
}

/* Ajustes a alertas en modales informativos */
.report-modal .alert.alert-modern {
  border-radius: 12px;
}