¿Cómo hacer que el elemento llene el ancho restante, cuando el hermano tiene un ancho variable?

En el siguiente ejemplo:

Quiero que el cuadro de texto llene todo el espacio disponible. El problema es que el ancho del menú desplegable no se puede arreglar, ya que sus elementos no son estáticos. Me gustaría resolver esto con solo css (no javascript si es posible).

He intentado las soluciones propuestas a preguntas similares sin ninguna suerte :(

Aquí está el violín:http://jsfiddle.net/ruben_diaz/cAHb8/

Aquí está el html:

<div id="form_wrapper">
    <form accept-charset="UTF-8" action="/some_action" method="post">
        <span class="category_dropdown_container">
            <select class="chosen chzn-done" name="question[category_id]" id="selQJK">
                <option value="1">General</option>
                <option value="2">Fruits</option>
                <option value="3">Ice Creams</option>
                <option value="4">Candy</option>
            </select>
        </span>
        <span class="resizable_text_box">
            <input id="question_text_box" name="question[what]" placeholder="Write a query..." type="text" />
        </span>
        <input name="commit" type="submit" value="Ask!" />
    </form>
</div>

Y aquí el css:

#form_wrapper {
    border: 1px solid blue;
    width: 600px;
    padding: 5px;
}
form {
    display: inline-block;
    width: 100%;
}
.category_dropdown_container {
}
.resizable_text_box {
    border: 1px solid red;
}
input[type="text"] {
}
input[type="submit"] {
    background-color: lightblue;
    width: 80px;
    float: right;
}

Respuestas a la pregunta(3)

Su respuesta a la pregunta