.sn-progress {
  background: #e0f7e9;
  height: 24px;
  border-radius: 4px;
  margin-bottom: 0.5rem;
  position: relative;
}
.sn-bar {
  background: #28a745;
  height: 100%;
  border-radius: 4px 0 0 4px;
  transition: width 0.3s ease;
}
.sn-text {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  color: #000;
  font-weight: bold;
  line-height: 24px;
}
.sn-subtext {
  margin: 0 0 1rem;
  font-size: 0.9rem;
  color: #333;
}
.sn-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  margin-bottom: 1.2rem;
}
@media (max-width: 768px) {
  .sn-row {
    grid-template-columns: 1fr;
  }
}
.sn-label input.sn-empty,
.sn-label select.sn-empty {
  border-color: #dc3545 !important;
}
.sn-label input.sn-filled,
.sn-label select.sn-filled {
  border-color: #155724 !important;
}
.sn-toggle {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.sn-slider {
  width: 50px;
  height: 24px;
  background: #ccc;
  border-radius: 24px;
  position: relative;
  transition: 0.4s;
}
.sn-slider::before {
  content: "";
  position: absolute;
  width: 18px;
  height: 18px;
  left: 3px;
  bottom: 3px;
  background: #fff;
  border-radius: 50%;
  transition: 0.4s;
}
.sn-toggle input {
  opacity: 0;
  width: 0;
  height: 0;
  position: absolute;
}
.sn-toggle input:checked + .sn-slider {
  background: #28a745;
}
.sn-toggle input:checked + .sn-slider::before {
  transform: translateX(26px);
}
.sn-form .select2-container,
.sn-form .select2-selection--single {
  width: 100% !important;
  border-radius: 4px !important;
}
.sn-form input,
.sn-form select,
.sn-form textarea {
  width: 100% !important;
  border-radius: 4px !important;
  box-sizing: border-box;
}
.sn-row label {
  display: flex;
  flex-direction: column;
}
.sn-full {
  grid-column: 1/ -1;
}

/* ---------------------------------------------
   2.1. Contenedor del botón superior
--------------------------------------------- */
.sn-save-top {
  display: flex;
  justify-content: flex-end;
  margin-bottom: 1rem;
}

/* ---------------------------------------------
   2.2. Botón "Guardar" con color #c90d05 y bordes redondos
--------------------------------------------- */
.sn-btn-primary {
  background-color: #c90d05 !important;
  border-radius: 8px !important;
  color: #fff !important;
  border: none !important;
}

/* ---------------------------------------------
   2.3. Inputs, selects y textarea con bordes redondos
--------------------------------------------- */
.sn-form input,
.sn-form select,
.sn-form textarea,
.sn-form .select2-selection {
  border-radius: 8px !important;
}

/* ---------------------------------------------
   2.4. Campos que ocupan 2 columnas en grid de 3
--------------------------------------------- */
/* Primera fila: Nombres y Apellidos */

/* Fila 1: Nombres y Apellidos → 2 columnas */
.sn-form > .sn-row:nth-of-type(1) {
  grid-template-columns: repeat(2, 1fr);
}

/* Fila 2: (nickname, fecha, toggle) – deja el default de 3 columnas, no hace falta override */

/* Fila 3: Correo y Contraseña → 2 columnas */
.sn-form > .sn-row:nth-of-type(3) {
  grid-template-columns: repeat(2, 1fr);
}

/* Contenedor del botón inferior */
.sn-save-bottom {
  display: flex;
  justify-content: flex-end;
  margin-top: 1rem;
}
