/**
 * © 2021-2026 Higi Bigler (nullnulleins.ch). All rights reserved.
 *
 * This file is part of glorya.
 *
 * glorya is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * glorya is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with glorya. If not, see <http://www.gnu.org/licenses/>.
 */

 /* colors */
:root {
	--formbuilder-input-bg-color: #EFEFEF;
	--formbuilder-input-border-color: #999;
	--formbuilder-input-border-color-hover: #000;
	--formbuilder-input-border-color-focus: #000;
	--formbuilder-checkbox-check-color: #333;
	--formbuilder-checkbox-check-color-hover: #000;
	--formbuilder-checkbox-check-color-focus: #000;
	--formbuilder-radio-check-color: #333;
	--formbuilder-radio-check-color-hover: #000;
	--formbuilder-radio-check-color-focus: #000;
	--formbuilder-yesorno-text-color: #666;
	--formbuilder-yesorno-bg-color: #666;
	--formbuilder-yesorno-checked-text-color: #FFF;
	--formbuilder-yesorno-checked-text-color-hover: #FFF;
	--formbuilder-yesorno-checked-text-color-focus: #FFF;
	--formbuilder-yesorno-checked-bg-color: #666;
	--formbuilder-yesorno-checked-bg-color-hover: #000;
	--formbuilder-yesorno-checked-bg-color-focus: #000;
	--formbuilder-submit-color: #FFF;
	--formbuilder-submit-color-hover: #FFF;
	--formbuilder-submit-color-focus: #FFF;
	--formbuilder-submit-bg-color: #999;
	--formbuilder-submit-bg-color-hover: #000;
	--formbuilder-submit-bg-color-focus: #000;
	--formbuilder-submit-border-color: #999;
	--formbuilder-submit-border-color-hover: #000;
	--formbuilder-submit-border-color-focus: #000;
	--formbuilder-focus-outline: 2px solid yellow;

	--formbuilder-input-error-bg-color: #FBB;
	--formbuilder-input-error-outline: 2px solid #FBB;
	--formbuilder-input-invalid-bg-color: #FBB;
	--formbuilder-input-invalid-outline: 2px solid #FBB;
	--formbuilder-input-select-multiple-enhanced-grid-columns: repeat(3, minmax(0, 1fr));
}

:root body.popup {
	--formbuilder-input-bg-color: var(--g-input-bg-color);
}

/* formbuilderwrapper */
div.formbuilderwrapper fieldset, div.formbuilderwrapper fieldset legend { margin: 0; padding: 0; border: none; }
div.formbuilderwrapper > form > fieldset { margin-left: -.25em; margin-right: -.25em; }
div.formbuilderwrapper fieldset legend { margin: .25em; width: 100%; box-sizing: border-box; }
div.formbuilderwrapper fieldset legend p { margin-bottom: 0; margin-top: 0; }
div.formbuilderwrapper li.options > fieldset, div.formbuilderwrapper li.checkbox > label { margin: 0 .25em; position: relative; display: block; }
div.formbuilderwrapper li.options > fieldset > legend { margin: .25em 0; }
div.formbuilderwrapper li.checkbox > label > input.checkbox + span { position: static; }
div.formbuilderwrapper li.options > fieldset { margin: .5em .25em; }
div.formbuilderwrapper li.options li.checkbox > label { position: static; }
div.formbuilderwrapper ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; }
div.formbuilderwrapper ol li { margin: 0 0 .5em; width: 100%; position: relative; }
div.formbuilderwrapper ol li.options { margin-top: .25em; }
div.formbuilderwrapper ol li.submit { margin-top: 1em; }
div.formbuilderwrapper ol > li:not(.checkbox):not(.noinput) + li.checkbox { margin-top: .5em; }
div.formbuilderwrapper ol li li.checkbox { margin-bottom: 0; }
div.formbuilderwrapper div.input { margin: 0 .25em; }
div.formbuilderwrapper input, div.formbuilderwrapper select, div.formbuilderwrapper button, div.formbuilderwrapper textarea { height: 1.8em; padding: 0; box-sizing: border-box; border-radius: 0; font-family: inherit; font-size: inherit; line-height: inherit; border: 1px solid var(--formbuilder-input-border-color); width: 100%; background-color: var(--formbuilder-input-bg-color); -webkit-appearance: none; padding: 0 3px; display: block; color: inherit; }
div.formbuilderwrapper textarea { resize: vertical; }
div.formbuilderwrapper input:hover, div.formbuilderwrapper select:hover, div.formbuilderwrapper button:hover, div.formbuilderwrapper textarea:hover { border-color: var(--formbuilder-input-border-color-hover); }
div.formbuilderwrapper input:focus, div.formbuilderwrapper select:focus, div.formbuilderwrapper button:focus, div.formbuilderwrapper textarea:focus { border-color: var(--formbuilder-input-border-color-focus); outline: var(--formbuilder-focus-outline); }
div.formbuilderwrapper input[type=submit] { width: auto; padding: 0 1em; background-color: var(--formbuilder-submit-bg-color); color: var(--formbuilder-submit-color); border-color: var(--formbuilder-submit-border-color); }
div.formbuilderwrapper input[type=submit]:hover { background-color: var(--formbuilder-submit-bg-color-hover); color: var(--formbuilder-submit-color-hover); border-color: var(--formbuilder-submit-border-color-hover); }
div.formbuilderwrapper input[type=submit]:focus { background-color: var(--formbuilder-submit-bg-color-focus); color: var(--formbuilder-submit-color-focus); border-color: var(--formbuilder-submit-border-color-focus); }
div.formbuilderwrapper input[type=checkbox],
div.formbuilderwrapper input[type=radio],
div.formbuilderwrapper input[type=checkbox]:focus,
div.formbuilderwrapper input[type=radio]:focus { outline: none; }
div.formbuilderwrapper textarea { height: 3.6em; }

/* check- and radioboxes */
div.formbuilderwrapper input[type=checkbox], div.formbuilderwrapper input[type=radio] {	position: absolute; left: 0; top: 0; width: 0; overflow: hidden; opacity: 0; padding: 0; margin: 0; border: none !important; }
div.formbuilderwrapper input[type=checkbox] + span input[type=text]:not([name*="freeother"]) { width: 0px; border: none; padding: 0; outline: none !important; }
div.formbuilderwrapper .checkbox input[type=checkbox] + span::before,
div.formbuilderwrapper .checkbox input[type=radio] + span::before, div.formbuilderwrapper ul.comp input[type=radio] + span::before { border: 1px solid var(--formbuilder-input-border-color); background-color: var(--formbuilder-input-bg-color); width: 1.2em; height: 1.2em; display: block; content: '' !important; position: absolute; top: .2em; left: 0; box-sizing: border-box; margin: 0; z-index: 1; }
div.formbuilderwrapper .checkbox input[type=radio] + span::before, div.formbuilderwrapper ul.comp input[type=radio] + span::before { border-radius: 50%; }
div.formbuilderwrapper .checkbox input[type=checkbox]:checked + span::after { border: 3px solid var(--formbuilder-checkbox-check-color); border-left: none; border-top: none; content: ''; width: .6em; height: 1.2em; display: block; transform: rotate(45deg); position: absolute; top: -.05em; left: .25em; z-index: 2; }
div.formbuilderwrapper .checkbox input[type=radio]:checked + span::after, div.formbuilderwrapper ul.comp input[type=radio]:checked + span::after { background-color: var(--formbuilder-radio-check-color); content: ''; width: .6em; height: .6em; display: block; position: absolute; top: .5em; left: .3em; box-sizing: border-box; border-radius: 50%; border: none; z-index: 2; }
div.formbuilderwrapper .checkbox span.label, div.formbuilderwrapper ul.comp label.radio span:last-child, div.formbuilderwrapper .checkbox span.sublabel { padding: .2em 0 0 2em; display: block; min-height: 1.8em; box-sizing: border-box; width: 100%; margin: 0; }
div.formbuilderwrapper .checkbox span.sublabel input { margin-top: -.2em; }
div.formbuilderwrapper .checkbox div.yesorno { display: flex; }
div.formbuilderwrapper .checkbox div.yesorno span.label { padding: 0; display: flex; justify-content: center; flex-direction: column; }
div.formbuilderwrapper .checkbox div.yesorno input[type="radio"] + span::before, div.formbuilderwrapper .checkbox div.yesorno input[type="radio"] + span::after { content: ''; display: none; }

div.formbuilderwrapper .checkbox input[type=checkbox]:hover + span::before,
div.formbuilderwrapper .checkbox input[type=radio]:hover + span::before,
div.formbuilderwrapper ul.comp input[type=radio]:hover + span::before { border-color: var(--formbuilder-input-border-color-hover); outline: var(--formbuilder-focus-outline); }
div.formbuilderwrapper .checkbox input[type=checkbox]:focus + span::before,
div.formbuilderwrapper .checkbox input[type=radio]:focus + span::before,
div.formbuilderwrapper ul.comp input[type=radio]:focus + span::before { border-color: var(--formbuilder-input-border-color-focus); outline: var(--formbuilder-focus-outline); }

div.formbuilderwrapper .checkbox input[type=checkbox]:checked:hover + span::after { border-color: var(--formbuilder-checkbox-check-color-hover); }
div.formbuilderwrapper .checkbox input[type=checkbox]:checked:focus + span::after { border-color: var(--formbuilder-checkbox-check-color-focus); }
div.formbuilderwrapper .checkbox input[type=radio]:checked:hover + span::after,
div.formbuilderwrapper ul.comp input[type=radio]:checked:hover + span::after { background-color: var(--formbuilder-radio-check-color-hover); }
div.formbuilderwrapper .checkbox input[type=radio]:checked:focus + span::after,
div.formbuilderwrapper ul.comp input[type=radio]:checked:focus + span::after { background-color: var(--formbuilder-radio-check-color-focus); }

/* other value */
div.formbuilderwrapper .checkbox.other input + span.sublabel input[type=text] { display: none; }
div.formbuilderwrapper .checkbox.other input:checked + span.sublabel input[type=text] { display: block; }
div.formbuilderwrapper .checkbox.other input:checked + span.sublabel p { display: none; }

/* multiple select */
div.optgroup > span.label { padding: .5em 0 0; margin: 0; }
div.optgroup div.options { margin: 0 0 .5em; }
div.optgroup div.options > div { display: grid; grid-template-columns: var(--formbuilder-input-select-multiple-enhanced-grid-columns); gap: 0 .5em; }
div.optgroup .checkbox { position: relative; }

/* yes or no */
div.formbuilderwrapper div.yesornowrapper { display: flex; width: 8.5em; height: 1.8em; color: var(--formbuilder-yesorno-text-color); font-size: 80%; }
div.formbuilderwrapper div.yesornowrapper label { width: 50%; text-align: center; line-height: calc(1.8em - 2px); background-color: var(--formbuilder-input-bg-color); }
div.formbuilderwrapper div.yesornowrapper label + label { margin-left: .5em; }
div.formbuilderwrapper div.yesornowrapper input + span { display: block; border: 1px solid var(--formbuilder-input-border-color); position: relative; }
div.formbuilderwrapper div.yesornowrapper input:hover + span { border-color: var(--formbuilder-input-border-color-hover); z-index: 1; }
div.formbuilderwrapper div.yesornowrapper input:focus + span { border-color: var(--formbuilder-input-border-color-hover); z-index: 1; outline: var(--formbuilder-focus-outline); }
div.formbuilderwrapper div.yesornowrapper input:checked + span { font-weight: 700; background-color: var(--formbuilder-yesorno-checked-bg-color); color: var(--formbuilder-yesorno-checked-text-color); }
div.formbuilderwrapper div.yesornowrapper input:checked:hover + span { background-color: var(--formbuilder-yesorno-checked-bg-color-hover); color: var(--formbuilder-yesorno-checked-text-color-hover); }
div.formbuilderwrapper div.yesornowrapper input:checked:focus + span { background-color: var(--formbuilder-yesorno-checked-bg-color-focus); color: var(--formbuilder-yesorno-checked-text-color-focus); }

/* date */
div.formbuilderwrapper li.datefield div.input > span { display: flex; }
div.formbuilderwrapper li.datefield div.input input { min-width: 10em; }
div.formbuilderwrapper li.datefield div.input input, div.formbuilderwrapper li.datefield div.input select { width: auto; }
div.formbuilderwrapper li.datefield div.input label + span { display: none; }
div.formbuilderwrapper li.datefield.datefallback input[type=date] { display: none; }
div.formbuilderwrapper li.datefield.datefallback div.input label + span { display: flex; padding: 0; margin: 0; }
div.formbuilderwrapper li.datefield.datefallback div.input label + span select { margin-right: 4px; }
div.formbuilderwrapper li.timefield div.input input { min-width: 6em; width: auto; }

/* datetimespan */
div.formbuilderwrapper li.datetimespanfield div.input > label > ol { display: flex; gap: .5em; flex-wrap: nowrap; }
div.formbuilderwrapper li.datetimespanfield div.input > label > ol label > span { display: none; }
div.formbuilderwrapper li.datetimespanfield div.input > label > ol > li { margin: 0; line-height: calc(1.8em - 2px); width: auto; }

/* likertscale */
div.likertscale > * { display: flex; white-space: nowrap; flex-direction: row; justify-content: space-between; }
/*div.likertscale > * > * { outline: 1px solid blue; }*/
div.formbuilderwrapper div.likertscale li { width: auto; }
div.formbuilderwrapper div.likertscale li span.sublabel { padding: 1.6em 0 0; width: 1.2em; text-align: center; }
div.formbuilderwrapper div.likertscale li span.sublabel span { position: fixed; left: -100vw; width: 0; height: 0; }
div.formbuilderwrapper div.likertscale > div > div { width: 50%; flex-shrink: 1; display: flex; justify-content: flex-end; flex-direction: column; padding-right: 1.2em; box-sizing: border-box; white-space: normal; }
div.formbuilderwrapper div.likertscale > div > div:nth-child(2) { text-align: right; padding-left: 1.2em; padding-right: 0; }
div.formbuilderwrapper div.likertscale .noanswer { flex-shrink: 0; flex-grow: 0; text-align: right; text-align: right; padding-right: 0; }
div.formbuilderwrapper div.likertscale ol { position: relative; margin: 0; }
div.formbuilderwrapper div.likertscale ol::after { content: ''; display: block; width: 100%; height: 1px; background-color: var(--formbuilder-input-border-color); position: absolute; top: .825em; left: 0; z-index: 0; }
/*
div.formbuilderwrapper div.likertscale ol::after { content: ''; display: block; width: 100%; height: 1px; background-color: var(--formbuilder-input-border-color); position: absolute; top: .825em; left: 0; z-index: 0; }
div.formbuilderwrapper div.likertscale.noanswerallowed ol::after { width: 80%; }
*/

/* Fine Uploader */
div.formbuilderwrapper > form ul li { float: none; }
div.formbuilderwrapper > form > fieldset { max-width: calc(100% + .5em); }
div.formbuilderwrapper li .fileuploadwrapper { width: 100%; }
div.formbuilderwrapper li .fileuploadwrapper .fineuploader[data-g-filesmax="1"] .qq-upload-list-wrapper[data-g-filecount="1"],
 div.formbuilderwrapper li .fileuploadwrapper .fineuploader[data-g-filesmax="10"] .qq-upload-list-wrapper[data-g-filecount="10"] { margin-bottom: 3px; }
div.formbuilderwrapper li .fileuploadwrapper .fineuploader[data-g-filesmax="1"] .qq-upload-list-wrapper[data-g-filecount="1"] + div,
div.formbuilderwrapper li .fileuploadwrapper .fineuploader[data-g-filesmax="10"] .qq-upload-list-wrapper[data-g-filecount="10"] + div { display: none; }
div.formbuilderwrapper .qq-uploader { position: relative; }
div.formbuilderwrapper .qq-uploader-selector.qq-uploader { display: flex; flex-direction: column; }
div.formbuilderwrapper .qq-upload-button { display: inline-block; overflow: unset !important; }
div.formbuilderwrapper .qq-uploader-selector.qq-uploader button.button { opacity: 1; }
div.formbuilderwrapper .qq-uploader-selector.qq-uploader .clearfix button.button { padding-left: .5em; padding-right: .5em; }
div.formbuilderwrapper .qq-uploader-selector.qq-uploader .clearfix button.button.choose { display: none; }
div.formbuilderwrapper .ajaxuploadinprogress .qq-uploader-selector.qq-uploader .clearfix button.button.choose { display: none; }
div.formbuilderwrapper .qq-upload-list-wrapper { margin: 0 0 4px; }
div.formbuilderwrapper .bulkupload .qq-upload-list-wrapper { margin-top: 0; }
div.formbuilderwrapper .qq-upload-list { margin: 0; padding: 0; list-style: none; border: 1px solid var(--formbuilder-input-border-color); background-color: var(--formbuilder-input-bg-color); color: inherit; }
div.formbuilderwrapper .qq-upload-list-wrapper[data-g-filecount="0"] .qq-upload-list { display: none; }
div.formbuilderwrapper .qq-upload-list li { width: 100%; line-height: 1.8em; height: 1.8em; margin: 0; padding: 0; position: relative; background-color: var(--g-input-bg-color); display: block; background-image: linear-gradient(-45deg, rgba(0, 0, 0, 0) 25%, rgba(0, 0, 0, 0.05) 25%, rgba(0, 0, 0, 0.05) 50%, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 0) 75%, rgba(0, 0, 0, 0.05) 75%, rgba(0, 0, 0, 0.05) 50%); z-index: 1; background-size: 25px 25px; -webkit-animation: submitting 2s linear infinite; animation: submitting 2s linear infinite; box-sizing: border-box; }
div.formbuilderwrapper .qq-upload-list li:hover { background-color: var(--g-highlight-bg-color); }
div.formbuilderwrapper .qq-uploader-selector.qq-uploader.multiple .qq-upload-list li { border-top: 1px dotted var(--g-alt-bg-color); }
div.formbuilderwrapper .qq-upload-status-text { position: absolute; left: 0; top: 0; bottom: 0; background-color: var(--g-selection-bg-color); font-weight: 400; line-height: 1.8em; height: 1.8em; padding: 0; text-indent: .3em; }
div.formbuilderwrapper .qq-upload-file-selector.qq-upload-file { display: block; overflow: hidden; text-overflow: ellipsis; }
div.formbuilderwrapper .qq-upload-file { margin: 0; }
div.formbuilderwrapper .qq-upload-delete, div.formbuilderwrapper .qq-upload-pause, div.formbuilderwrapper .qq-upload-continue { display: block; }
div.formbuilderwrapper .qq-upload-retryable .qq-upload-retry { display: inline; }
div.formbuilderwrapper .qq-upload-failed-text { display: none; }
div.formbuilderwrapper .qq-upload-failed-icon { display: none; width: 15px; height: 15px; vertical-align: text-bottom; }
div.formbuilderwrapper .qq-upload-fail .qq-upload-failed-text { display: inline; }
div.formbuilderwrapper .qq-upload-retrying .qq-upload-failed-text { display: inline; color: #F54354; }
div.formbuilderwrapper .qq-upload-list li.qq-upload-success { background-image: none; }
div.formbuilderwrapper .qq-upload-list li.qq-upload-fail { background-color: var(--g-highlight-bg-color); background-image: none; }
div.formbuilderwrapper .qq-progress-bar-container-selector { position: absolute; width: 100%; left: 0; height: 100%; }
div.formbuilderwrapper .qq-upload-status-wrapper { position: relative; z-index: 1; padding: 0 3px; margin: 0; display: flex; flex-wrap: nowrap; gap: .25em; }
div.formbuilderwrapper .qq-upload-status-wrapper > div { white-space: nowrap; }
div.formbuilderwrapper .qq-upload-status-wrapper > .qq-filename { overflow: hidden; text-overflow: ellipsis; flex-grow: 1; flex-shrink: 1; width: 0; }
div.formbuilderwrapper .qq-upload-status-wrapper > .qq-filesize { margin: 0; }
div.formbuilderwrapper .qq-upload-status-wrapper > .qq-fileactions {  white-space: nowrap; margin: .35em 0 0; padding: 0; }
div.formbuilderwrapper .qq-upload-status-wrapper > .qq-fileactions .imagebutton { margin: -1px 0 0; height: 1.25em; width: 1.25em; line-height: 1.25em; }
div.formbuilderwrapper .qq-progress-bar { display: block; background-color: #FFF; width: 0%; height: inherit; margin: 0; padding: 0; z-index: 0; opacity: .3; transition: width .3s linear; }
div.formbuilderwrapper .qq-upload-file.qq-editable { cursor: pointer; }
div.formbuilderwrapper .qq-hide { display: none !important; }

@-webkit-keyframes submitting {
	0% { background-position: 0 0; }
	100% { background-position: 50px 50px; }
}
@keyframes submitting {
	0% { background-position: 0 0; }
	100% { background-position: 50px 50px; }
}


/* labels */
div.formbuilderwrapper label p, div.formbuilderwrapper .required.options legend p, div.formbuilderwrapper .required.yesorno > div p { display: inline-block; margin: 0; }
div.formbuilderwrapper span.label {  display: block; margin: 0 0 .25em; }
div.formbuilderwrapper span.label p { display: block; margin: 0; }

/* required */
div.formbuilderwrapper .required span.label > *:last-child::after { content: ' *'; }
div.formbuilderwrapper .required.options legend > *:last-child::after { content: ' *'; }

/* errors */
div.formbuilderwrapper li.error input,
div.formbuilderwrapper li.error button,
div.formbuilderwrapper li.error select,
div.formbuilderwrapper li.error textarea,
div.formbuilderwrapper li.error input[type=checkbox] + span::before,
div.formbuilderwrapper li.error input[type=radio] + span:not(.yesorno)::before {
	background-color: var(--formbuilder-input-error-bg-color);
}
div.formbuilderwrapper li.error input,
div.formbuilderwrapper li.error button,
div.formbuilderwrapper li.error select,
div.formbuilderwrapper li.error textarea,
div.formbuilderwrapper li.error input[type=checkbox] + span::before,
div.formbuilderwrapper li.error:not(.invalidoptioncount) input[type=radio] + span::before {
	outline: var(--formbuilder-input-error-outline);
}
div.formbuilderwrapper li.error .ts-control {
	outline: var(--formbuilder-input-error-outline) !important;
	background-color: var(--formbuilder-input-error-bg-color);
}

.formbuilderwrapper.error > div.response {
	background-color: var(--formbuilder-input-error-bg-color);
	padding: .5em;
}

/* validation */
div.formbuilderwrapper li.invalid input,
div.formbuilderwrapper li.invalid select,
div.formbuilderwrapper li.invalid textarea,
div.formbuilderwrapper li.checkbox.invalid input[type="checkbox"] + span::before,
div.formbuilderwrapper li.options.invalid input[type="checkbox"] + span:not(.yesorno)::before {
	background-color: var(--formbuilder-input-invalid-bg-color);
}
div.formbuilderwrapper li.invalid input,
div.formbuilderwrapper li.invalid select,
div.formbuilderwrapper li.invalid textarea,
div.formbuilderwrapper li.invalid:not(.invalidoptioncount) div.yesornowrapper input[type="radio"] + span,
div.formbuilderwrapper li.checkbox.invalid input[type="checkbox"] + span::before,
div.formbuilderwrapper li.options.invalid input[type="checkbox"] + span::before {
	outline: var(--formbuilder-input-invalid-outline);
	background-color: var(--formbuilder-input-invalid-bg-color);
}
div.formbuilderwrapper li.invalid.invalidmin div.yesornowrapper input[type="radio"][value="0"]:not(:checked) + span,
div.formbuilderwrapper li.invalid input[type="radio"]:not(:checked) + span::before,
div.formbuilderwrapper li.invalid.invalidmin input[type="radio"]:not(:checked) + span::before {
	outline: var(--formbuilder-input-invalid-outline);
	background-color: var(--formbuilder-input-invalid-bg-color);
}
div.formbuilderwrapper li.invalid.invalidmax div.yesornowrapper input[type="radio"][value="1"]:checked + span,
div.formbuilderwrapper li.invalid.invalidmax input[type="radio"]:checked + span::before {
	outline: var(--formbuilder-input-invalid-outline);
	background-color: var(--formbuilder-input-invalid-bg-color);
}

/* address */
div.formbuilderwrapper li[class*=firstname], div.formbuilderwrapper li[class*=lastname], div.formbuilderwrapper li[class*=email], div.formbuilderwrapper li[class*=phone], div.formbuilderwrapper li[class*=mobile], div.formbuilderwrapper li[class*=birthday], div.formbuilderwrapper li[class*=birthyear] { width: 50%; }
div.formbuilderwrapper li[class*=birthday] div.input input { width: 100%; }
div.formbuilderwrapper li[class*=phone] { margin-bottom: 0; }
div.formbuilderwrapper li[class*=zip] { width: 33.3333%; }
div.formbuilderwrapper li[class*=city] { width: 66.6666%; }
div.formbuilderwrapper li.pobox.selected { width: 66.6666%; }
div.formbuilderwrapper li.pobox.selected + li.poboxnr { width: 33.3333%; }

/* botdetection */
div.formbuilderwrapper li.input_dingsbums { position: absolute; left: -100vw; }

/* admin stuff */
body.popup #formbuilder_1 { margin: 1px 0 3px; }
body.popup #formbuilder_1 li { margin: 0; }
body.popup #formbuilder_1 fieldset { border: 2px solid #676787; margin: .5em 0 0; }
body.popup #formbuilder_1 fieldset legend { background-color: transparent; text-transform: none; color: #676787; font-weight: 600; padding: 0 .5em; margin: 0 .5em; width: auto; }
body.popup #formbuilder_1 fieldset > ol { margin: 0 .5em; }
body.popup #formbuilder_1 + textarea { display: none; }

/* disabled */
div.formbuilderwrapper input:disabled, div.formbuilderwrapper textarea:disabled, div.formbuilderwrapper select:disabled, div.formbuilderwrapper button:disabled,
div.formbuilderwrapper li.checkbox input:disabled[type=checkbox] + span::before, div.formbuilderwrapper li.checkbox input:disabled[type=radio] + span::before { opacity: .25; }
input:disabled, textarea:disabled, select:disabled, button:disabled,
div.formbuilderwrapper input:disabled:hover, div.formbuilderwrapper textarea:disabled:hover, div.formbuilderwrapper select:disabled:hover, div.formbuilderwrapper button:disabled:hover,
div.formbuilderwrapper input:disabled:focus, div.formbuilderwrapper textarea:disabled:focus, div.formbuilderwrapper select:disabled:focus, div.formbuilderwrapper button:disabled:focus,
div.formbuilderwrapper li.checkbox input:disabled[type=checkbox] + span::before, div.formbuilderwrapper li.checkbox input:disabled[type=radio] + span::before { outline: inherit; border-color: inherit; }
