/* ===============================
   FORMULARIOS — ESTILO GLOBAL  
================================*/

form {
  background: #ffffff;
  padding: 32px;
  border-radius: 12px;
  border: 1px solid #ddd;
  max-width: 50vw;
  margin: 40px auto;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.09);
  font-family: sans-serif;
}

/* Filas y grupos */
form .row {
  display: flex;
  flex-flow: row;
  gap: 10px;
}

.form-group {
  width: 100%;
}

.form-check {
  display: flex;
  flex-flow: row;
  align-items: center;
}

/* ----- Etiquetas ----- */
form label {
  display: block;
  font-weight: 600;
  font-size: 15px;
  margin-bottom: 6px;
  color: #53565a;
}

/* ===============================
   CAMPOS DE TEXTO (agrupados)
================================*/

/* Campos comunes: texto, email, password, tel, number, url, search, date/time... */
form input[type="text"],
form input[type="email"],
form input[type="password"],
form input[type="tel"],
form input[type="number"],
form input[type="url"],
form input[type="search"],
form input[type="date"],
form input[type="time"],
form input[type="datetime-local"],
form input[type="month"],
form input[type="week"],
form select,
form textarea {
  width: 100%;
  padding: 10px 14px;
  border-radius: 6px;
  border: 1px solid #ccc;
  font-size: 15px;
  margin-bottom: 20px;
  transition: border-color 0.2s ease, background-color 0.2s ease;
  background: #fff;
  color: #53565a;
}

/* ----- Textarea ----- */
form textarea {
  resize: vertical;
  min-height: 90px;
}

/* ----- Input File ----- */
form input[type="file"] {
  width: 100%;
  font-size: 14px;
  margin-bottom: 20px;
  background: none;
  border: none;
  padding: 0;
}

/* ----- Focus (para todos los campos editables) ----- */
form input[type="text"]:focus,
form input[type="email"]:focus,
form input[type="password"]:focus,
form input[type="tel"]:focus,
form input[type="number"]:focus,
form input[type="url"]:focus,
form input[type="search"]:focus,
form input[type="date"]:focus,
form input[type="time"]:focus,
form input[type="datetime-local"]:focus,
form input[type="month"]:focus,
form input[type="week"]:focus,
form select:focus,
form textarea:focus {
  border-color: #f0b331;
  background-color: rgba(240, 179, 49, 0.2);
  outline: none;
}

/* ===============================
   CHECKBOX Y RADIO
================================*/

form input[type="checkbox"],
form input[type="radio"] {
  margin-right: 8px;
}

/* Checkbox personalizado */
form input[type="checkbox"] {
  min-width: 20px !important;
  height: 20px !important;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  border-radius: 4px;
  border: 2px solid #777;
  margin-right: 6px;
  transition: border-color 0.25s, background-color 0.25s;
  vertical-align: middle;
  background-color: #fff;
}

form input[type="checkbox"]:hover {
  border-color: #0062cc;
}

form input[type="checkbox"]:checked {
  background-color: #0062cc;
  border-color: #004a99;
}

form input[type="checkbox"]:checked::before {
  content: "✓";
  color: white;
  font-size: 15px;
  font-weight: bold;
  position: relative;
  display: block;
  text-align: center;
  line-height: 15px;
}

/* Radio personalizado */
form input[type="radio"] {
  appearance: none;
  -webkit-appearance: none;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  border: 2px solid #777;
  cursor: pointer;
  transition: border-color 0.25s, background-color 0.25s;
  background-color: #fff;
}

form input[type="radio"]:hover {
  border-color: #0062cc;
}

form input[type="radio"]:checked {
  border-color: #004a99;
  background-color: #0062cc;
}

form input[type="radio"]:checked::before {
  content: "";
  display: block;
  width: 8px;
  height: 8px;
  margin: 2px auto 0;
  border-radius: 50%;
  background-color: #fff;
}

/* ===============================
   BOTONES
================================*/

form button,
form input[type="submit"],
form input[type="button"],
form input[type="reset"] {
  /*background: rgb(240, 179, 49);*/
  background: rgba(85, 88, 92, 0.3);
  font-weight: bolder;
  border: 0;
  border-radius: 6px;
  padding: 10px 22px;
  /*color: white;*/
  color: #53565a;
  font-size: 15px;
  cursor: pointer;
  transition: background 0.2s ease;
}

form button:hover,
form input[type="submit"]:hover,
form input[type="button"]:hover,
form input[type="reset"]:hover {
  /*background: #004a99;*/
  background: rgb(240, 179, 49);
  color: white;
}

/* ===============================
   TEXTOS AUXILIARES
================================*/

form small,
form p,
form .help {
  font-size: 13px;
  color: #555;
  margin-bottom: 12px;
}

@media (max-width: 768px) {
  form .row {
    display: block;
  }
}
