

.formulario {
  border: #f5f5f5 solid 1px;
  display: flex;
  flex-direction: column;
  padding: 1em;
  max-width: 850px;
  justify-content: center;
  margin: 1.5em auto;
  min-width: 80%;
}

.flex {
  display: flex;
}

fieldset {
  padding: 0;
  border: none;
}

label {
  display: inline-block;
  margin: 0.3em 0;
}

label::after {
  content: ":";
}

label.sin_puntos::after {
  content: "";
}

.campo_requerido::before {
  content: "* ";
  color: red;
}

.formulario div {
  margin-bottom: 0.5em;
  width: 100%;
  margin-right: 1em;
}

.formulario input,
.formulario select {
  padding: 0.4em;
  width: 100%;
  border: none;
  border-bottom: 1px solid lightgray;
  /*justify-self: right;*/
}

.formulario .agrupador {
  display: flex;
  flex-direction: column;
  /*    border-bottom: solid 1px #257175;*/
}

.formulario div:last-child {
  margin-right: 0;
}

.margen_botones * {
  margin: 1em 0 1em 1em;
}

.grupo_checkboxes {
  display: flex;
  flex-direction: column;
}

.grupo_checkboxes .radio_barra {
  border: none;
}

.radio_barra legend {
  font-size: 1rem;
  /*padding: 0 .5rem;*/
}

.radio_barra {
  display: flex;
  flex-direction: column;
  padding: 1em 0;

  border-bottom: 1px solid lightgray;
  padding-bottom: 1em;
  position: relative;
}

.radio_barra > label {
  list-style: none;
  cursor: pointer;
  padding: 0.3em;
  display: flex;
  align-content: center;
}

.radio_barra input {
  padding: 0;
}

.radio_barra > label:hover,
#rango input[type="button"]:hover,
.radio_barra input[type="radio"]:focus + label,
.radio_barra input[type="checkbox"]:focus + label {
  background-color: var(--color_principal);
}

.radio_barra.desactivada > label:hover {
  background-color: unset;
}

.radio_barra input[type="radio"],
.radio_barra input[type="checkbox"] {
  opacity: 0;
  height: 0;
  width: 0;
}
/*
.radio_barra input[type="radio"]:focus+label, .radio_barra input[type="checkbox"]:focus+label {
    border: thick dotted var(--color_principal);
}*/

.radio_barra label::before {
  content: "";
  display: inline-block;
  height: 14px;
  width: 15px;
  background-color: #eee;
  border: #888 solid 2px;
  border-radius: var(--radio);
  margin: 4px 10px 0;
  line-height: 13px;
  min-width: 15px;
}

input[type="radio"] + label {
  --check: "✓";
  --radio: 50%;
}

input[type="checkbox"] + label {
  --check: "X";
  --radio: 0;
}

.radio_barra input[type="radio"]:checked + label::before,
.radio_barra input[type="checkbox"]:checked + label::before {
  content: var(--check);
  font-size: 1.2em;
  text-align: center;
  font-weight: 900;
  color: var(--color_oscuro);
  border: none;
}

textarea {
  border: 1px solid lightgray;
  width: 100%;
  display: block;
  min-height: 15em;
  height: auto;
  white-space: pre-wrap;
}

.campo_invalido {
  border-bottom: red 3px solid;
  color: darkred;
}

input[type="submit"]:disabled,
input[type="radio"]:disabled,
input[type="radio"]:disabled + label,
input[value=""]:disabled,
textarea:empty:disabled {
  display: none;
}

input:disabled,
select:disabled,
textarea:disabled,
input[type="radio"]:checked:disabled + label {
  display: block;
  background-color: transparent;
  border: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  font-family: Arial, Helvetica, sans-serif;
  resize: none;
  color: black;
  margin-top: 0;
  padding: 0.5em 10px;
  font-size: 0.9rem;
  min-height: 1em;
  /*height: 100%;*/
}

input[type="radio"]:checked:disabled+label::before
/*.radio_barra.desactivada label::before*/ {
  display: none;
}

form.desactivada {
  display: unset;
}

.desactivada {
  display: none;
}

.radio_barra.desactivada {
  display: inherit;
  justify-content: start;
  border-bottom: none;
  padding: 0;
}

legend,
.radio_barra legend legend {
  font-size: 0.7em;
}

.formulario .agrupador > div {
  padding: 0.5em;
}

.formulario .agrupador.desactivada > div {
  padding: 0 0.5em;
}

@media only screen and (min-width: 1000px) {
  .formulario .agrupador,
  .radio_barra {
    flex-direction: row;
    /*border-bottom: none;/*
        /*align-items: center;*/
    justify-content: start;
  }

  .agrupador.desactivada {
    display: inherit;
    flex-direction: column;
  }

  .grupo_checkboxes {
    flex-direction: row;
  }

  .muchas_opciones .radio_barra {
    flex-direction: column;
    padding: 0;
    margin: 0;
  }
}
