.form {
    clear: both;
    float: none;
    padding: 10px;
}

.form.boxed {
    border: 1px solid grey;
    -webkit-box-shadow: 0 0 2px #333333;
    -moz-box-shadow: 0 0 2px #333333;
    box-shadow: 0 0 2px #333333;
    -webkit-border-radius: 5px;
    -moz-border-radius: 5px;
    border-radius: 5px;
    background-color: #ffffff;
}

.form.half-screen {
    width: 1000px;
    margin: 0 auto;
}

.form.third-screen {
    width: 600px;
    margin: 0 auto;
}

.form .line {
    padding: 0 0 10px;
    box-sizing: border-box;
    display: flex;
}

.form .line.squeeze {
    padding: 0;
}

.form .line > label {
    width: 25%;
    display: inline-block;
    overflow: hidden;
    text-overflow: ellipsis;
}

.form .line.smaller-input > label {
    width: 50%;
}

.form .line.small-input > label {
    width: 70%;
}

.form .line.label-less > label {
    display: none;
}

.form .line.infomsg,
.form .line.errorbox,
.form .line.warning,
.form .line.success {
    padding: 10pt 10pt 10pt 10pt;
    background-color: #990000;
    color: #ffffff;
    margin-bottom: 10pt;
    -webkit-box-shadow: 0 0 2px #666666;
    -moz-box-shadow: 0 0 2px #666666;
    box-shadow: 0 0 2px #666666;
    -webkit-border-radius: 5px;
    -moz-border-radius: 5px;
    border-radius: 5px;
}

.form .line.infomsg a,
.form .line.error a,
.form .line.warning a,
.form .line.success a {
    color: inherit;
}

.form .line.success {
    background-color: #009900;
}

.form .line.infomsg {
    background: #E6E6FA url(/images/info-48.png) no-repeat 8px center;
    background-size: 36px;
    padding-left: 48px;
    color: black;
}

.form .line.warning {
    background: #CC6600 url(/images/warning_48.png) no-repeat 8px center;
    background-size: 36px;
    padding-left: 48px;
}

.form .line.error ul {
    padding-left: 40px;
    margin: 1em 0 0;
}

.form .line.mandatory > label {
    font-weight: bold;
}

.form div#telephone-number-edit-container {
    width: 100%
}

.form .line input,
.form .line textarea,
.form .line .input-like-field,
.form .line .textarea-like-field,
.form .line table.input-like,
.form .line.radio-group div,
.form .line .multi-select-wrapper,
.form .line select {
    flex-grow: 1;
    box-sizing: border-box;
}

.form .line.error input,
.form .line.error textarea,
.form .line.error .input-like-field,
.form .line.error .textarea-like-field,
.form .line.error table.input-like,
.form .line.error.radio-group div,
.form .line.error select {
    box-shadow: 0 0 8px 3px #e61;
    border-radius: 3px;
    border: 1px solid #e61;
    -webkit-transition: all 200ms;
    -moz-transition: all 200ms;
    -ms-transition: all 200ms;
    -o-transition: all 200ms;
    transition: all 200ms;
}

.form .line.smaller-input input,
.form .line.smaller-input textarea,
.form .line.smaller-input .input-like-field,
.form .line.smaller-input .textarea-like-field,
.form .line.smaller-input table.input-like,
.form .line.smaller-input.radio-group div,
.form .line.smaller-input select {
    width: 50%;
}

.form .line.small-input input,
.form .line.small-input textarea,
.form .line.small-input .input-like-field,
.form .line.small-input table.input-like,
.form .line.small-input.radio-group div,
.form .line.small-input select {
    width: 30%;
}

.form .line.label-less input,
.form .line.label-less textarea,
.form .line.label-less .input-like-field,
.form .line.label-less .textarea-like-field,
.form .line.label-less table.input-like,
.form .line.label-less.radio-group div,
.form .line.label-less.input-like-buttons,
.form .line.label-less select {
    width: 100%;
}

.form .line.label-less.input-like-buttons {
    margin-left: 0;
}

.form .line.full-width {
    display: block;
}

.form .line.full-width > label,
.form .line.full-width input,
.form .line.full-width textarea,
.form .line.full-width .input-like-field,
.form .line.full-width .textarea-like-field,
.form .line.full-width table.input-like,
.form .line.full-width.radio-group div,
.form .line.full-width select {
    width: 100%;
}

.form .line.full-width table.input-like {
    display: table;
}

.form .line table.input-like {
    vertical-align: middle;
    border-collapse: collapse;
}

.form .line input,
.form .line .input-like-field,
.form .line .textarea-like-field {
    padding: 2px 4px;
    margin: 1px 0 1px 0;
    border: 1px solid #ccc;
    color: #000;
    min-height: 1.5em;
    box-sizing: border-box;
    background-color: #fff;
}

.form .line .textarea-like-field {
    min-height: 3em;
}

.form .line select {
    padding: 2px 4px;
    min-height: 1.5em;
    box-sizing: border-box;
    background-color: #fff;
}

.form .line select option {
    padding: 0;
}

.form .line table.input-like div.input-like-field,
.form .line table.input-like div.textarea-like-field,
.form .line table.input-like select.input-in-a-td,
.form .line table.input-like input.input-in-a-td {
    width: 99%;
}

.form .line input.warn,
.form .line .input-like-field.warn {
    background-image: url(/images/icon_alert.gif);
    background-position: right 5px center;
    background-repeat: no-repeat;
    -webkit-box-shadow: 0 0 3px 2px #FFBB66;
    -moz-box-shadow: 0 0 3px 2px #FFBB66;
    box-shadow: 0 0 3px 2px #FFBB66;
}

.form .line-with-button a.button {
    padding: 2px 4px;
    min-height: 1.5em;
    display: inline-block;
    width: 50px;
    text-align: center;
    text-decoration: none;
    border: 1px solid #CCCCCC;
    border-left: medium none;
    color: #666666;
    background-color: #EEEEEE;
    border-radius: 0 4px 4px 0;
    -moz-border-radius: 4px;
    box-sizing: border-box;
}

.form .line-with-2buttons a.button {
    border-radius: 0;
}

.form .line-with-2buttons a.button:last-child {
    border-radius: 0 4px 4px 0;
}

.form .line-with-button a.button:not(.disabled):hover {
    color: #990000;
    background-color: #DDDDDD;
    border-color: #999999;
}

.form .line-with-button a.button img {
    vertical-align: bottom;
}

.form .line-with-button a.button.disabled {
    color: #666666;
    background-color: #f0f0f0;
}

.form .line .input-like-field,
.form .line .textarea-like-field {
    color: #666;
    background-color: #eee;
}

.form .line.input-like-buttons {
    margin-left: 25%;
    width: 70%;
}

.form .line.input-like-buttons div {
    text-align: left;
}

.form .line.input-like-buttons div a.textbutton {
    margin-right: 10px;
}

.form .line.radio-group,
.form .line.radio-button {
    min-height: 1.5em;
    margin-top: 1px;
    display: flex;
    flex-wrap: wrap;
}

.form .line.radio-group div {
    margin-left: -5px; /* Compensate 5px margin of the first checkbox/radio */
}

.form .line.radio-group span {
    white-space: nowrap;
    margin-right: 1vw;
}

.form .line.radio-group span input,
.form .line.radio-button input {
    vertical-align: top;
    margin-right: 5px;
    margin-left: 5px;
}

.form .line.radio-group span input {
    margin-left: 1px;
}

.form .line.radio-group span label,
.form .line.radio-button label {
    border: 1px solid transparent;
    line-height: 1.5em;
    min-height: 1.5em;
}

.form .line.radio-button label {
    width: auto !important;
}

.form .line.radio-group span label::after,
.form .line.radio-button label::after {
    display: none;
}

.form .line.radio-group-smaller span label,
.form .line.radio-button-smaller label {
    font-size: 0.9em;
}


.form .line .multi-select-wrapper {
    position: relative;
    border: 1px solid #ccc;
    padding: 2px;
    background-color: #fff;
    box-sizing: border-box;
    cursor: text;
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
}

.form .line .multi-select-wrapper .tag {
    display: flex;
    align-items: center;
    background-color: #007bff;
    color: white;
    padding: 2px 6px;
    border-radius: 12px;
    border: 1px solid #049;
    font-size: 0.9em;
}

.form .line .multi-select-wrapper .tag .remove-tag {
    margin-left: 2px;
    cursor: pointer;
    font-weight: bold;
    padding: 0 4px;
}

.form .line .multi-select-wrapper .tag .remove-tag:hover {
    color: #000;
}

.form .line .multi-select-wrapper input.multi-select-input {
    flex-grow: 1;
    min-width: 120px;
    border: none;
    outline: none;
    font-size: 14px;
    padding: 2px;
    background: transparent;
}

.form .line .multi-select-wrapper ul.suggestions-list {
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    list-style: none;
    padding: 0;
    margin: 2px 0 0;
    border: 1px solid #ccc;
    background: white;
    max-height: 150px;
    overflow-y: auto;
    z-index: 10;
    box-sizing: border-box;
}

.form .line .multi-select-wrapper ul.suggestions-list li {
    padding: 8px;
    cursor: pointer;
    white-space: nowrap;
}

.form .line .multi-select-wrapper ul.suggestions-list li:hover {
    background-color: #eee;
}


.form.half-screen .line .input-like-field,
.form.half-screen .line .textarea-like-field,
.form.half-screen .line input,
.form.half-screen .line select,
.form.half-screen .line textarea,
.form.half-screen .line > label,
.form.half-screen .line.radio-group div,
.form.third-screen .line .input-like-field,
.form.third-screen .line .textarea-like-field,
.form.third-screen .line input,
.form.third-screen .line select,
.form.third-screen .line textarea,
.form.third-screen .line > label,
.form.third-screen .line.radio-group div {
    /*display: inline-block;*/
}

.form .buttons {
    text-align: center;
    padding: 10px 0 10px;
}

.form .buttons input,
.form .buttons button {
    min-width: 100px;
    padding: 4px 10px;
    width: auto !important;
    margin: 0 10px;
}

.form .explanation-text {
    font-style: italic;
    color: #666666;
    font-size: 0.9em;
}

.form .explanation-text.input-related {
    margin-left: 25%;
    width: 75%;
    text-align: right;
}

.column {
    width: 49%;
    margin-left: 2%;
    vertical-align: top;
}

.three-columns > .column {
    width: 32%;
}

.three-columns > .column > .line > label {
    width: 35%;
}

.three-columns > .column > .line.smaller-input > label,
.three-columns > .column > .line.small-input > label {
    width: 50%;
}

.three-columns > .column > .line > input,
.three-columns > .column > .line > select,
.three-columns > .column > .line.input-like-buttons,
.three-columns > .column > .line > .input-like-field,
.three-columns > .column > .line > .textarea-like-field {
    width: 60%;
}

.three-columns > .column > .line.smaller-input > input,
.three-columns > .column > .line.smaller-input > select,
.three-columns > .column > .line.smaller-input.input-like-buttons,
.three-columns > .column > .line.smaller-input > .input-like-field,
.three-columns > .column > .line.smaller-input > .textarea-like-field,
.three-columns > .column > .line.small-input > input,
.three-columns > .column > .line.small-input > select,
.three-columns > .column > .line.small-input.input-like-buttons,
.three-columns > .column > .line.small-input > .input-like-field,
.three-columns > .column > .line.small-input > .textarea-like-field {
    width: 50%;
}

.three-columns > .column > .line.input-like-buttons {
    margin-left: 35%;
}

.line.connected-field {
    margin-top: -6px;
    padding-left: 25%;
}

.line.connected-field > label {
    width: 20%;
    font-style: italic;
    color: grey;
}

.line.connected-field .input-like-field,
.line.connected-field .textarea-like-field {
    width: 80%;
    background-color: #FFF7DF;
    color: #888;
}

/* Unset spacing margin for the first column or any column that's preceeded by a line */
.line + .column,
.column:first-child {
    margin-left: 0;
}

.has-columns {
    display: flex;
    vertical-align: top;
}

* input[type="radio"], * input[type="checkbox"] {
    width: auto !important;
    vertical-align: middle;
    flex-grow: 0 !important;
}

.form .line.radio-group span.disabled label,
.form .line.disabled.explanation-text,
.form .line.disabled.radio-group span label,
.form .line.disabled > label {
    color: #999999;
}

.form .line.disabled input,
.form .line.disabled textarea,
.form .line.disabled .input-like-field,
.form .line.disabled .textarea-like-field,
.form .line.disabled table.input-like,
.form .line.disabled select {
    background-color: #eeeeee;
    color: #666666;
    border: 1px solid #bbbbbb;
}

@media screen and (max-width: 1280px) {
    .form.half-screen {
        width: 800px;
    }
}

@media screen and (max-width: 800px) {
    .form {
        padding: 10px;
    }

    .form.third-screen,
    .form.half-screen {
        box-sizing: border-box;
        width: 100%;
        margin: 0;
        background-color: transparent;
    }

    .form.boxed {
        -webkit-box-shadow: none;
        -moz-box-shadow: none;
        box-shadow: none;
        border: medium none;
        -webkit-border-radius: 0;
        -moz-border-radius: 0;
        border-radius: 0;
    }
}

@media screen and (max-width: 640px) {
    .line.connected-field {
        padding-left: 0;
    }

    .form .line {
        display: block;
    }

    .form .line > label {
    }

    .form .line.input-like-buttons,
    .form .line .input-like-field,
    .form .line .textarea-like-field,
    .form .line input,
    .form .line select {
        display: block;
        width: 100% !important;
        box-sizing: border-box;
    }

    .form .line.input-like-buttons {
        margin-left: 0;
    }

    .form .line-with-button input,
    .form .line-with-button textarea,
    .form .line-with-button .input-like-field,
    .form .line-with-button .textarea-like-field,
    .form .line-with-button table.input-like,
    .form .line-with-button select {
        width: 89% !important;
        float: left;
    }

    .form .line-with-2buttons input,
    .form .line-with-2buttons textarea,
    .form .line-with-2buttons .input-like-field,
    .form .line-with-2buttons .textarea-like-field,
    .form .line-with-2buttons table.input-like,
    .form .line-with-2buttons select {
        width: 83% !important;
        float: left;
    }

    .form .line-with-button a.button {
        width: 10%;
    }

    .form .line-with-2buttons a.button {
        width: 8%;
    }

    .form .line .input-like-field,
    .form .line .textarea-like-field,
    .form .line input {
        margin: 0;
    }

    .has-columns {
        display: block;
    }

    .column {
        display: block;
        width: 100% !important;
        margin: 0;
    }

    .column:after {
        display: block;
        content: "";
        float: none;
        clear: both;
    }

    .has-columns {
        vertical-align: top;
    }
}

.column-title {
    font-size: 2rem;
    border-bottom: 1px solid #000000;
    margin: 15px 0;
}

.has-columns > .column-title {
    font-size: 11pt;
}

* span.radio-quiz {
    display: inline-block;
    width: 25%;
    margin-right: 10px;
}
