/* Entrada dinámica: formulario de uno o varios datos tecleados (ht_entrada_dinamica). */
.entrada-form { display:flex; flex-wrap:wrap; gap:12px; align-items:end; margin:16px 0 20px; }
.entrada-form label { display:flex; flex-direction:column; gap:7px; color:var(--ink); font-size:0.96875rem; font-weight:700; flex:1 1 190px; }
.entrada-obligatorio { color:var(--danger); }
.entrada-input { width:100%; border:1px solid var(--line-strong); border-radius:9px; padding:12px; background:var(--surface); color:var(--ink); font:inherit; font-size:1.09375rem; }
.entrada-input:focus { outline:3px solid var(--focus); outline-offset:2px; }
.entrada-submit { border:0; border-radius:9px; padding:13px 16px; font-weight:750; color:var(--on-brand); background:var(--brand); }
.entrada-submit:hover { background:var(--brand-hover); }
.entrada-submit:focus-visible { outline:3px solid var(--focus); outline-offset:2px; }
/* Errores de los datos: aviso a todo el ancho, encima del botón, y casillas incorrectas en rojo. */
.entrada-errores { flex: 1 1 100%; background: var(--danger-bg); color: var(--danger); border: 1px solid var(--danger); border-radius: 9px; padding: 10px 14px; font-size: 0.90625rem; line-height: 1.5; }
.entrada-errores[hidden] { display: none; }
.entrada-errores ul { margin: 4px 0 0; padding-left: 18px; }
.entrada-input[aria-invalid="true"] { border: 2px solid var(--danger); background: var(--danger-bg); }
