/* registroStyles.css */

/* — RESET Y TIPOGRAFÍA BASE — */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  font-family: Arial, sans-serif;
}

/* — FONDO — */
body {
  background: url('FondoLogin.jpg') center/cover no-repeat;
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 100vh;
  padding: 20px;
}

/* — CONTENEDOR PRINCIPAL — */
.container {
  width: 1100px;
  max-width: 100%;
  background: #fff;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 20px 40px rgba(0,0,0,0.1);
  display: flex;
  min-height: 650px;
}

/* — PANEL IZQUIERDO — */
.left-panel {
  width: 40%;
  background-color: #166379;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  padding: 32px 32px 16px;
  text-align: center;
  gap: 5px;
  padding-top: 30px;
}

.left-panel .logo-img {
  max-width: 80%;
  object-fit: contain;
  margin-bottom: 130px;
  margin-top: 60px;
}

.left-panel h1 {
  color: #fff;           /* antes era #E1DFD9 */
  font-size: 1.8rem;
  margin-bottom: 5px;
}

.left-panel p {
  color: rgba(255,255,255,0.8);
  font-size: 0.9rem;
}

.left-panel .back-btn-left {
  /* oculto porque usamos botón inline junto al Siguiente */
  display: none;
}

/* — PANEL DERECHO — */
.right-panel {
  width: 60%;
  background-color: #e1dfd9;
  padding: 32px;
  display: flex;
  flex-direction: column;
  align-items: center;
}

/* — STEP INDICATOR — */
.step-indicator {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  max-width: 400px;
  margin-bottom: 20px;
}
.step-indicator::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 18px;
  right: 18px;
  height: 2px;
  background: #ccc;
  transform: translateY(-50%);
  z-index: 1;
}
.step {
  position: relative;
  z-index: 2;
  width: 36px; height: 36px;
  border-radius: 50%;
  background: #ccc; color: #fff;
  display: flex; align-items: center; justify-content: center;
  font-weight: bold; text-decoration: none;
  transition: background-color 0.3s;
}
.step.active    { background: #166379; }
.step.completed { background: #D88429; }

/* — ENCABEZADOS — */
.form-header {
  font-family: 'Satoshi', sans-serif;
  text-align: center;
  color: #166379;
  margin-bottom: 20px;
}
.form-title {
  font-family: 'Syncopate', sans-serif;
  font-weight: 700;
  color: #166379;
  font-size: 2.2rem;
  margin-bottom: 6px;
}
.form-subtitle {
  font-family: 'Satoshi', sans-serif;
  font-weight: 400;
  color: #4F4A44;
  font-size: 1rem;
  line-height: 1.4;
}

/* — CONTENEDOR DEL FORMULARIO — */
.form-container {
  width: 100%;
  max-width: 500px;
}

/* — FORM GROUPS — */
.form-group {
  width: auto;
  margin-bottom: 16px;
  position: relative; /* para autocomplete y password-wrapper */
}
.form-label {
  display: block;
  margin-bottom: 6px;
  color: #4F4A44;
  font-weight: 600;
}

/* — INPUTS Y SELECTS — */
.form-input,
.form-input1,
.form-input2,
.form-input3,
select {
  width: 100%;
  height: 48px;
  padding: 0 16px;
  border: 2px solid #4F4A44;
  border-radius: 25px;
  font-size: 0.95rem;
  background: #fff;
  transition: border-color 0.3s, box-shadow 0.3s;
}
.form-input:focus,
.form-input1:focus,
.form-input2:focus,
.form-input3:focus,
select:focus {
  border-color: #166379;
  box-shadow: 0 0 0 3px rgba(22,99,121,0.1);
}
.form-input::placeholder,
.form-input1::placeholder,
.form-input2::placeholder,
.form-input3::placeholder {
  color: #999;
}

/* Localidad / inputs deshabilitados en gris */
#localidad-input:disabled,
.form-input:disabled,
.form-input1:disabled {
  background: #e9ecef !important;
  color: #6c757d !important;
  cursor: not-allowed !important;
  opacity: 1 !important;
}

/* Evitar interacción visual con el dropdown */
#localidad-input:disabled ~ #localidad-suggestions {
  display: none !important;
}

/* — VARIANTES DE ANCHO — */
.form-input1 { max-width: 500px; }
.form-input2 { max-width: 222px; }
.form-input3 { max-width: calc(100% + 20px); }

/* — DOS COLUMNAS EN PASO 2 y PASO 3 — */
.two-columns-form {
  display: flex;
  gap: 20px;
  margin-top: 10px;
}
.two-columns-form .column {
  flex: 1 1 0;
  min-width: 0; /* evita que explote el contenido */
}
.two-columns-form .form-group {
  width: 100%;
  flex: none;
}

/* — PASO 3: FULL WIDTH SOLO AQUÍ — */
#form-paso3 .form-group {
  width: 100% !important;
}

/* — BOTÓN DE SUBMIT — */
.submit-btn {
  display: block;
  margin: 24px auto 0;
  width: 200px; height: 48px;
  background: #D88429;
  color: #fff;
  border: none;
  border-radius: 25px;
  font-size: 1rem;
  font-weight: 600;
  cursor: pointer;
  transition: background-color 0.3s, transform 0.2s;
}
.submit-btn:hover { background: #c67424; transform: translateY(-2px); }
.submit-btn:active{ transform: translateY(0); }

/* — ERROR MESSAGE — */
.error-message {
  background: #fff0f0;
  border: 1px solid #ffb2b2;
  color: #c62828;
  border-radius: 10px;
  padding: 12px;
  margin-bottom: 20px;
  font-size: 0.9rem;
  text-align: center;
}

/* — AUTOCOMPLETE SUGERENCIAS — */
.suggestions-list {
  position: absolute;
  top: calc(100% + 4px);
  left: 0; right: 0;
  background: #fff;
  border: 1px solid #ccc;
  border-radius: 4px;
  max-height: 140px;
  overflow-y: auto;
  z-index: 1000;
  list-style: none;
}
.suggestions-list li {
  padding: 8px 12px;
  cursor: pointer;
}
.suggestions-list li:hover {
  background: #f0f0f0;
}

/* — MOSTRAR/OCULTAR CONTRASEÑA — */
.password-wrapper {
  position: relative;
  width: 100%;
  margin-bottom: 16px;
}
.password-wrapper .form-input {
  padding-right: 3rem;
}
.password-wrapper .toggle-password {
  position: absolute;
  top: 80%;
  right: 1rem;
  transform: translateY(-80%);
  background: none;
  border: none;
  cursor: pointer;
  width: 1.5rem;
  height: 1.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2;
}
.password-wrapper .toggle-password i {
  font-size: 1.1rem;
}
.password-wrapper .toggle-password:focus {
  outline: none;
}

.subtitulo-info {
    font-size: 0.85rem;
    color: #555;
    margin: 12px 0 20px 0;
    line-height: 1.4;
    text-align: left;
}
/* — Centrar placeholder solo en el textarea de Observaciones — */
textarea.form-input3 {
  height: auto;
  min-height: 48px;
  padding: 16px 16px;
  resize: vertical;
  line-height: 1.2;
}
textarea.form-input3:placeholder-shown {
  display: flex;
  align-items: center;
}

/* — RESPONSIVE — */
@media (max-width: 900px) {
  .two-columns-form {
    flex-direction: column;
    gap: 0;
  }
  .two-columns-form .form-group {
    flex: 1 1 100%;
  }
  .password-fields-row {
    flex-direction: column;
    gap: 0;
  }
}
@media (max-width: 500px) {
  .submit-btn { width: 100%; }
  .container {
    flex-direction: column;
    margin-top: 0;
  }
}

/* — Agrupador y estilos para Volver + Siguiente en Paso 1 — */
.btn-group {
  display: flex;
  justify-content: flex-end;
  gap: 1rem;
  margin-top: 1.5rem;
}

.submit-btn.back {
  width: 200px;
  height: 48px;
  background: #8A9A9C;           /* color “Volver” */
  color: #fff;
  border: none;
  border-radius: 25px;
  font-size: 1rem;
  font-weight: 600;
  cursor: pointer;
  transition: background-color 0.3s;
}
.submit-btn.back:hover { background: #71716F; transform: translateY(-2px); }
.submit-btn.back:active{ transform: translateY(0); }

/* — PASSWORD REQUIREMENTS PANEL — */
/* — PASSWORD REQUIREMENTS PANEL — */
.password-group {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.password-fields-row {
  display: flex;
  gap: 20px;
}

.password-fields-row .password-wrapper {
  flex: 1;
  min-width: 0;
}

.password-box {
  background: #ffffff;
  border: 2px solid #d9d9d9;
  border-radius: 18px;
  padding: 18px;
  width: 260px;
  font-size: 0.85rem;
  transition: border-color .3s ease, box-shadow .3s ease;
}

.password-box h4 {
  margin-bottom: 10px;
  font-size: 0.9rem;
  color: #166379;
}

.password-box ul {
  list-style: none;
  padding: 0;
}

.password-box li {
  margin-bottom: 6px;
  display: flex;
  align-items: center;
  gap: 8px;
  color: #777;
  transition: color .2s ease;
}

.password-box li i {
  font-size: 0.8rem;
}

.password-box li.valid {
  color: #2e7d32;
}

.password-box li.valid i {
  color: #2e7d32;
}

.password-box.active {
  border-color: #166379;
  box-shadow: 0 10px 25px rgba(22,99,121,.1);
}

