form.grid12, .form_set.grid12 {
	container-type: inline-size;
	container-name: form;
	grid-auto-rows: auto;
	grid-gap: var(--form_gap_y) var(--form_gap_x);
	grid-auto-flow: inherit;
    align-items: end;
}
form.grid12 .form_set.grid12 {
	container-type: unset;
	container-name: unset;
}
form.grid12 > *:not(.icol), .form_set.grid12 > *:not(.icol) {
	grid-column-end: span 12;
}
input.form_error, textarea.form_error, select.form_error {
	border: max(var(--input_borderwidth), 1px) solid var(--form_error_color) !important;
}
fieldset.form_error > .toggle > input + .check_desc {
	color: var(--form_error_color);
}
.icol {
	position: relative;
    display: flex;
	flex-wrap: wrap;
    align-content: flex-end;
    align-items: flex-end;
    justify-content: space-between;
	transition: opacity 0.25s;
}
.icol.disabled, input:disabled, textarea:disabled, select:disabled {
	pointer-events: none;
	opacity: 0.4;
}
.icol.submit {
	/* grid-column-start: 1; */
	padding-top: calc(var(--form_rowheight) / 3);
}
.icol.margin_top {
	margin-top: var(--form_gap_y);
}
.icol.margin_bottom {
	margin-bottom: var(--form_gap_y);
}
.icol.margin {
	margin: var(--form_gap_y) 0;
}
.icol.oneline {
	flex-direction: row;
    align-items: center;
	min-height: calc(var(--form_rowheight) / 1.5);
}
.icol.newrow {
	grid-column-start: 1;
}
.icol.center {
	justify-content: center;
	text-align: center;
}
.icol.right {
	justify-content: flex-end;
	text-align: right;
}
fieldset.icol {
	flex-direction: column;
    align-items: flex-start;
    align-content: start;
}
fieldset, legend {
	margin: 0;
	padding: 0;
	border: none;
}

/* input, textarea, select */
input:not([type="checkbox"]):not([type="radio"]), textarea, select, button.btn, a.btn {
	font-family: var(--form_font);
	width: 100%;
	height: var(--form_rowheight);
	position: relative;
	float: left;
	display: block;
	margin: 0;
	border-radius: var(--form_borderradius);
	box-sizing: border-box;
	-webkit-appearance: none;
	appearance: none;
	transition: var(--input_transition);
}
input:not([type="checkbox"]):not([type="radio"]):not([type="range"]), textarea, select {
	font-size: var(--input_fontsize);
	font-weight: var(--input_fontweight);
	letter-spacing: var(--input_letterspacing);
	padding: var(--font_adjustment_top) var(--input_padding) var(--font_adjustment_bottom);
	color: var(--input_color);
	background-color: var(--input_bg);
	border: var(--input_borderwidth) solid var(--input_bordercolor);
	box-shadow: var(--input_boxshadow);
	outline: none;
}
input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):focus, textarea:focus, select:focus {
	color: var(--input_color_focus);
	background-color: var(--input_bg_focus);
	border: var(--input_borderwidth) solid var(--input_bordercolor_focus);
	box-shadow: var(--input_boxshadow_focus);
	outline: none;
	transition: var(--input_transition);	
}
textarea {
	height: calc(var(--form_rowheight) * 2.5);
	resize: none;
	font-size: var(--textarea_fontsize);
	padding: var(--textarea_padding_y) var(--input_padding);
	line-height: var(--textarea_lineheight);
	overflow: auto;
}
select {
	cursor: pointer;
}
input[type="search"]::-webkit-search-cancel-button.btn {
    -webkit-appearance: none;
}

/* label */
.icol:not(:has(input[type="checkbox"], input[type="radio"])) > label, legend, .ihelper {
	font-family: var(--form_font);
	position: var(--label_position);
    top: 0;
	left: var(--input_borderwidth);
	padding: var(--label_margin);
	font-size: var(--label_fontsize);
	font-weight: var(--label_fontweight);
	letter-spacing: var(--label_letterspacing);
	color: var(--label_color);
	line-height: 1;
	pointer-events: none;
	white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
	z-index: 1;
}
.show_required_hint .icol:has([required]) > label:not(.option):not(.check):not(.toggle):after,
.show_required_hint fieldset:has([required]) > legend:after {
	content: var(--label_required_content);
	color: var(--label_required_color);
}
:not(.show_required_hint) .icol:not(:has([required])) > label:not(.option):not(.check):not(.toggle):after,
:not(.show_required_hint) fieldset:not(:has([required])) > legend:after {
	content: " (optional)";
}
.hide_hint label:not(.option):not(.check):not(.toggle):after,
.hide_hint legend:after,
.icol.hide_label > label {
	display: none;
}
.ihelper, a.ihelper {
	position: absolute;
	left: auto;
	right: var(--input_borderwidth);
	width: auto;
	pointer-events: auto;
	font-weight: var(--ihelper_fontweight, 400);
	color: var(--ihelper_color, var(--prim));
	max-width: 65%;
	line-height: var(--label_fontsize);
	font-size: var(--ihelper_fontsize, var(--label_fontsize));
}
.icol:has(.ihelper) > label, .icol:has(.ihelper) > legend {
	max-width: 65%;
}

/* moving label */
.moving_label label.moved_label,
.moving_label .icol:not(:has(input[type="checkbox"], input[type="radio"])) > label,
.moved_label .icol:not(:has(input[type="checkbox"], input[type="radio"])) > label {
	position: absolute;
	top: var(--input_borderwidth);
	border-radius: 0.3em;
	transform-origin: center left;
	font-size: var(--input_fontsize);
	font-weight: var(--input_fontweight);
	letter-spacing: var(--input_letterspacing);
	margin-left: var(--input_padding);
	color: var(--placeholder_color);
	transform: translateY(calc(var(--form_rowheight) / 2 - 50% - var(--input_borderwidth)));
	transition: var(--input_transition);
	z-index: 1;
}
.moving_label .icol:has(textarea) > label {
	transform: translateY(var(--textarea_padding_y)) !important;
	line-height: var(--textarea_lineheight);
}
.moving_label label.moved_label,
.moving_label .icol:not(:has(input[type="checkbox"], input[type="radio"], :placeholder-shown)) > label,
.moved_label .icol:not(:has(input[type="checkbox"], input[type="radio"])) > label {
	font-weight: var(--label_fontweight) !important;
	letter-spacing: var(--label_letterspacing) !important;
	line-height: inherit;
	color: var(--label_color) !important;
	background-color: var(--label_moved_bg) !important;
	box-shadow: -0.3em 0 0 var(--label_moved_bg), 0.3em 0 0 var(--label_moved_bg) !important;
	transform: translateY(-50%) scale(0.85) !important;
}

/* button.btn */
button.btn, a.btn {
	--loader_bg: var(--button_loader_bg, white);
	--loader_color_ind: var(--button_loader_color_ind);
	--loader_color_base: var(--button_loader_color_base);
	width: 100%;
	max-width: var(--box_small);
	height: auto;
	text-align: center;
	font-size: var(--button_fontsize);
	font-weight: var(--button_fontweight);
	letter-spacing: var(--button_letterspacing);
	line-height: var(--button_lineheight);
	color: var(--button_color);
	background-color: var(--button_bg);
	border: var(--button_border);
	padding-inline: var(--button_padding_x, 4rem);
	transition: var(--input_transition);
	cursor: pointer;
	overflow: hidden;
    display: flex;
	align-items: center;
    justify-content: center;
	gap: 1em;
}
button.btn:active, a.btn:active {
	color: var(--button_color_active);
	background-color: var(--button_bg_active);
	border: var(--button_border_active);
	transition: 0s;
}
a.btn:hover {
    text-decoration: none;
}
button.btn.ghost, a.btn.ghost {
	color: var(--button_ghost_color);
    background-color: var(--button_ghost_bg, transparent);
    border: var(--button_ghost_borderwidth) solid currentColor;
}
button.btn.frameless, a.btn.frameless {
	color: var(--button_frameless_color, --button_ghost_color);
	background-color: transparent !important;
	border: none;
	padding-left: 0;
	padding-right: 0;
}
button.btn.light, a.btn.light {
	color: var(--button_light_color, var(--button_ghost_color));
    background-color: var(--button_light_bg);
    border-color: transparent;
}
button.btn.ghost:active, a.btn.ghost:active {
	border-color: transparent;
}
button.btn.ghost:active, a.btn.ghost:active,
button.btn.frameless:active, a.btn.frameless:active,
button.btn.light:active, a.btn.light:active {
	color: var(--button_scnd_color_active, var(--button_color_active));
}
button.btn:disabled, a.btn:disabled {
	color: var(--button_disabled_color, rgb(0 0 0 / 65%));
	pointer-events: none;
	background-color: var(--button_disabled_bg, hsl(var(--h, 225) 10% 65%));
	border-color: transparent;
	transition: 0s;
	opacity: 0.9;
}
button.btn.medium, a.btn.medium {
	font-size: var(--button_medium_fontsize);
}
button.btn.small, a.btn.small {
	font-size: var(--button_small_fontsize);
}
button.btn.auto_width, a.btn.auto_width {
	width: auto;
}
button.btn.enable_center, a.btn.enable_center {
	float: none;
	display: inline-flex;
}
button.btn .icon, a.btn .icon {
	width: var(--button_icon_size);
	min-width: var(--button_icon_size);
	stroke: var(--button_icon_stroke);
	stroke-width: var(--button_icon_strokewidth);
}
button.btn.load, a.btn.load {
    color: transparent;
	transition: 0s;
}
button.btn.dyn, a.btn.dyn {
	container-type: inline-size;
	container-name: dynbtn;
	padding: 0 1rem !important;
}
button.btn.dyn > span, a.btn.dyn > span {
	text-overflow: ellipsis;
    white-space: nowrap;
    overflow: hidden;
}
button.btn, a.btn, a.btn.dyn > *, button.btn.dyn > * {
	padding-top: calc(var(--button_padding_top) + var(--font_adjustment_top));
    padding-bottom: calc(var(--button_padding_bottom) + var(--font_adjustment_bottom));
}
button.btn.ghost, a.btn.ghost, a.btn.ghost.dyn > *, button.btn.ghost.dyn > * {
	padding-top: calc(var(--button_padding_top) + var(--font_adjustment_top) - var(--button_ghost_borderwidth));
	padding-bottom: calc(var(--button_padding_bottom) + var(--font_adjustment_bottom) - var(--button_ghost_borderwidth));
}
@container dynbtn (max-width: 340px) {
* { font-size: var(--button_medium_fontsize); }
}
@container dynbtn (max-width: 200px) {
* { font-size: var(--button_small_fontsize); }
}

/* check */
.check {
	position: relative;
	margin: var(--check_margin_y) 0;
	color: var(--check_color);
	font-size: var(--check_fontsize);
	font-weight: var(--check_fontweight);
	letter-spacing: var(--check_letterspacing);
	line-height: var(--check_lineheight);
}
.check_desc {
	position: relative;
	width: 100%;
	display: flex;
	flex-direction: row;
    align-items: flex-start;
	gap: var(--check_gap);
}
.check input {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: 0;
	padding: 0;
	opacity: 0;
	-webkit-appearance: none;
	appearance: none;
	pointer-events: none;
}
.check_desc strong,
.check_desc b {
	font-size: var(--check_title_fontsize);
	margin-bottom: var(--check_title_margin_bottom, 0.4em);
}
.check_desc small {
	color: var(--check_small_color, inherit);
	font-size: var(--check_small_fontsize);
}
input:disabled + .check_desc {
	opacity: 0.6;
}
input[type="checkbox"]:not(:disabled) + .check_desc,
input[type="radio"]:not(:checked):not(:disabled) + .check_desc {
	cursor: pointer;
}
label.check:has(input[type="radio"]:checked) {
    cursor: auto;
}
.check:not(.toggle) > .check_desc:before,
.check:not(.toggle) > .check_desc:after {
	content: "";
	position: relative;
	min-width: var(--check_input_size);
	aspect-ratio: 1/1;
	top: calc((var(--check_lineheight) - var(--check_input_size)) / 2);
	box-sizing: border-box;
	background-color: var(--check_bg);
	border: var(--check_border, var(--input_bordercolor));
	z-index: 1;
}
.check:not(.toggle) > .check_desc:after {
	position: absolute;
	border: none;
	background-color: transparent;
	z-index: 0;
	pointer-events: none;
	display: none;
}
.check:not(.toggle) > input[type="checkbox"] + .check_desc:before,
.check:not(.toggle) > input[type="checkbox"] + .check_desc:after {
	border-radius: var(--check_checkbox_br);
}
.check:not(.toggle) > input[type="radio"] + .check_desc:before,
.check:not(.toggle) > input[type="radio"] + .check_desc:after {
	border-radius: 50%;
}
.check:not(.toggle) > input[type="checkbox"]:checked + .check_desc:before {
	background-image: url('data:image/svg+xml; utf8, <svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10" stroke="white" stroke-width="1.2" fill="none"><polyline points="7.5,2.8 3.9,6.4 2.5,5"/></svg>');
	background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
	border: var(--check_border_checked);
	background-color: var(--check_bg_checked);
}
.check:not(.toggle) > input:checked + .check_desc:after {
	display: block;
	background-color: var(--check_bg_checked);
	animation: checked 0.75s forwards;
}
@keyframes checked {
	to { transform: scale(1.75); opacity: 0; }
}
.check:not(.toggle) > input[type="radio"]:checked + .check_desc:before {
	border: 0.4em solid var(--check_bg_checked);
}
.icol:has(.input_error_notification) > .check:not(.toggle) > input[type="checkbox"]:required:not(:checked) + .check_desc:before {
	border-color: var(--form_error_color);
}

/* check toggle */
.toggle {
	margin: var(--toggle_margin_y) 0;
	color: var(--toggle_color, var(--check_color));
	font-size: var(--toggle_fontsize, var(--check_fontsize));
	font-weight: var(--toggle_fontweight, var(--check_fontweight));
	letter-spacing: var(--toggle_letterspacing, var(--check_letterspacing));
	line-height: var(--toggle_lineheight, var(--check_lineheight));
}
.toggle > .check_desc {
	align-items: center;
	gap: var(--toggle_gap, var(--check_gap));
}
.toggle > .check_desc:before,
.toggle > .check_desc:after {
	content: "";
	transition: 0.25s, transform 0.25s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.toggle > .check_desc:before {
    position: relative;
    min-width: calc(var(--toggle_handle_size) * 1.8);
	height: var(--toggle_handle_size);
    top: auto;
    left: auto;
    padding: 0.2em;
	border-color: transparent;
    border-radius: 5em;
	box-sizing: content-box;
    background-color: var(--toggle_bg);
    transform: none;
}
.toggle > .check_desc:after {
	position: absolute;
    width: var(--toggle_handle_size);
    height: var(--toggle_handle_size);
	margin: 0.2em;
    border-radius: 50%;
    background-color: var(--toggle_handle_bg);
    box-shadow: var(--toggle_handle_boxshadow);
}
.toggle input:checked + .check_desc:before {
	background-color: var(--toggle_bg_checked, var(--check_bg_checked));
}
.toggle input:checked + .check_desc:after {
	transform: translateX(80%);
}
input[type="radio"]:focus-visible + .check_desc:before,
input[type="checkbox"]:focus-visible + .check_desc:before,
.toggle > input:focus-visible + .check_desc:before,
.check_tiles.hide_input input:focus-visible + .check_desc {
	outline: 2px solid var(--focus_outline_color, orange);
	outline-offset: var(--focus_outline_offset, 2px);
	box-shadow: var(--focus_boxshadow, inherit);
	transition: 0s;
}

/* check tiles */
.check_tiles {
    gap: var(--check_tiles_gap);
	flex-wrap: nowrap;
}
.check_tiles > .check {
	width: 100%;
	margin: 0;
	font-size: var(--check_tile_fontsize, var(--check_fontsize));
	line-height: var(--check_tile_lineheight, var(--check_lineheight));
}
.check_tiles .check_desc {
    padding: var(--check_tile_padding_y) var(--check_tile_padding_x);
	background-color: var(--check_tile_bg, var(--input_bg));
	border: var(--check_tile_border_width, var(--input_borderwidth)) solid var(--check_tile_bordercolor, var(--input_bordercolor));
    border-radius: var(--form_borderradius);
	gap: var(--check_tile_gap, var(--check_tile_padding_x));
	align-items: center;
	transition: var(--check_tile_transition);
	overflow: hidden;
}
.check_tiles input:checked + .check_desc {
	--check_color_hover: currentColor;
	background-color: var(--check_tile_bg_checked);
	border-color: var(--check_tile_bordercolor_checked);
}
.check_tiles .check_desc:before,
.check_tiles .check_desc:after {
	top: auto !important;
}
.check_tiles .check_desc > span:nth-child(1) {
	flex: 1;
}
.check_tiles .check_desc > span:nth-child(2) {
	text-align: right;
}
.check_tiles.compressed {
	gap: 0;
}
.check_tiles.compressed > .check:not(:first-of-type) {
	margin-top: calc(var(--check_tile_border_width) * -1);
}
.check_tiles.compressed > .check:not(:first-of-type) > .check_desc {
	border-top-left-radius: 0;
	border-top-right-radius: 0;
}
.check_tiles.compressed > .check:not(:last-of-type) > .check_desc {
	border-bottom-left-radius: 0;
	border-bottom-right-radius: 0;
}
.check_tiles.compressed input:checked + .check_desc {
    z-index: 1;
}
.check_tiles.hide_input .check_desc:before {
	display: none !important;
}
.check_tiles.hide_input .check_desc:after {
    inset: 0 !important;
    aspect-ratio: auto;
    transform: scaleX(0);
}
.check_tiles.hide_input input:checked + .check_desc:after {
	opacity: 0.1;
	border-radius: 15%;
	transform-origin: center;
	animation: checked_backdrop 0.65s forwards;
}
@keyframes checked_backdrop {
	to { transform: scale(1); opacity: 0; }
}
.check_tiles.chips {
	flex-direction: row;
    flex-wrap: wrap;
	justify-content: flex-start;
}
.check_tiles.chips > .check {
	width: auto;
}
.check_tiles.chips .check_desc {
    padding-top: calc(var(--check_tile_padding_y) / 2);
    padding-bottom: calc(var(--check_tile_padding_y) / 2);
}
.check_tiles.chips > .check:active {
	transform: scale(0.97);
}
.check_tiles.chips.hide_input input:checked + .check_desc:after {
	opacity: 0.25;
	transform: scale(0);
}

/* range */
input[type="range"], input[type="range"]:hover, input[type="range"]:focus {
	cursor: pointer;
	background-color: transparent;
	border: none;
}
input[type="range"]::-webkit-slider-runnable-track {
	height: var(--range_track_height);
	background-color: var(--range_track_bg);
	border-radius: var(--range_track_borderradius, var(--range_track_height));
	transition: background-color 0.18s;
}
input[type="range"]::-moz-range-track {
	height: var(--range_track_height);
	background-color: var(--range_track_bg);
	border-radius: var(--range_track_borderradius, var(--range_track_height));
	transition: background-color 0.18s;
}
input[type="range"]::-webkit-slider-thumb {
	width: var(--range_thumb_width);
	height: var(--range_thumb_width);
	background-color: var(--range_thumb_bg);
	margin-top: calc(var(--range_track_height) / 2 - var(--range_thumb_width) / 2);
	border-radius: var(--range_thumb_borderradius, 50%);
	box-shadow: 0 calc(var(--range_thumb_width) * 0.25) calc(var(--range_thumb_width) * 0.35) var(--range_thumb_boxshadow_color);
	-webkit-appearance: none;
	appearance: none;
}
input[type="range"]::-moz-range-thumb {
	width: var(--range_thumb_width);
	height: var(--range_thumb_width);
	background-color: var(--range_thumb_bg);
	border: none;
	border-radius: var(--range_thumb_borderradius, 50%);
	box-shadow: 0 calc(var(--range_thumb_width) * 0.25) calc(var(--range_thumb_width) * 0.35) var(--range_thumb_boxshadow_color);
}
input[type="range"]:focus-visible {
	outline: none;
	box-shadow: none;
}
input[type="range"]:focus-visible::-webkit-slider-thumb {
	outline: 2px solid var(--focus_outline_color, orange);
	outline-offset: var(--focus_outline_offset, 2px);
	box-shadow: var(--focus_boxshadow, inherit);
}
input[type="range"]:focus-visible::-moz-range-thumb  {
	outline: 2px solid var(--focus_outline_color, orange);
	outline-offset: var(--focus_outline_offset, 2px);
	box-shadow: var(--focus_boxshadow, inherit);
}

/* placeholder */
::-webkit-input-placeholder {
	color: var(--placeholder_color);
	font-weight: var(--placeholder_fontweight);
}
:-moz-placeholder { 
	color: var(--placeholder_color);
	font-weight: var(--placeholder_fontweight);
}
::-moz-placeholder {  
	color: var(--placeholder_color);
	font-weight: var(--placeholder_fontweight);
}
:-ms-input-placeholder {  
	color: var(--placeholder_color);
	font-weight: var(--placeholder_fontweight);
}

/* misc */
.input_overlay {
	position: absolute;
	font-family: var(--form_font);
	width: auto;
	height: var(--form_rowheight);
	font-size: var(--input_fontsize);
	font-weight: var(--input_fontweight);
	letter-spacing: var(--input_letterspacing);
	padding: var(--font_adjustment_top) var(--input_padding) var(--font_adjustment_bottom);
	color: var(--input_color);
	border: var(--input_borderwidth) solid transparent;
	border-radius: var(--form_borderradius);
	pointer-events: none;
	z-index: 6;
	overflow: hidden;
	display: flex;
    align-items: center;
	justify-content: center;
}
.input_overlay.prefix, .input_overlay.suffix {
	width: var(--fix_width);
	font-size: var(--fix_fontsize);
	color: var(--fix_color);
	font-weight: var(--fix_fontweight);
	letter-spacing: var(--fix_letterspacing);
	padding-left: 0;
	padding-right: 0;
}
.input_overlay.prefix:before, .input_overlay.suffix:before {
	content: "";
	position: absolute;
	inset: 0;
	background-color: var(--fix_bg);
	z-index: -1;
}
.input_overlay.prefix, .input_overlay.left {
	left: 0;
}
.input_overlay.prefix {
	border-right: var(--fix_border);
	border-top-right-radius: 0;
	border-bottom-right-radius: 0;	
}
.input_overlay.suffix, .input_overlay.right {
	right: 0;
}
.input_overlay.suffix {
	border-left: var(--fix_border);
	border-top-left-radius: 0;
	border-bottom-left-radius: 0;
}
.input_overlay .icon {
	width: var(--icon_size);
	min-width: var(--icon_size);
	stroke: var(--icon_stroke);
	stroke-width: var(--icon_strokewidth);
}
.input_overlay.clickable {
	pointer-events: auto;
	cursor: pointer;
}
.input_overlay.clickable .icon {
	stroke: var(--icon_stroke_clickable);
}
.icol:has(.input_overlay.prefix) > input:not([type="checkbox"]):not([type="radio"]), 
.icol:has(.input_overlay.prefix) > select {
	padding-left: calc(var(--input_padding) + var(--fix_width));
}
.icol:has(.input_overlay.left) > input:not([type="checkbox"]):not([type="radio"]),
.icol:has(.input_overlay.left) > select {
	padding-left: calc(var(--input_padding) * 2 + var(--icon_size));
}
.icol:has(.input_overlay.suffix) > input:not([type="checkbox"]):not([type="radio"]), 
.icol:has(.input_overlay.suffix) > select {
	padding-right: calc(var(--input_padding) + var(--fix_width));
}
.icol:has(.input_overlay.right) > input:not([type="checkbox"]):not([type="radio"]),
.icol:has(.input_overlay.right) > select {
	padding-right: calc(var(--input_padding) * 2 + var(--icon_size));
}
.icon_toggle > svg:last-child, .icon_toggle.toggled > svg:first-child {
	position: absolute;
	visibility: hidden;
}
.icon_toggle.toggled > svg:last-child {
	position: relative;
	visibility: visible;
}
input.input_error_highlight:not([type="checkbox"]):not([type="radio"]),
textarea.input_error_highlight,
select.input_error_highlight,
.input_error_highlight,
.input_error_highlight .check_desc:before {
	border-color: var(--form_error_color);
}
.input_error_highlight:hover {
	border-color: var(--input_bordercolor_hover) !important;
}
.input_error_notification,
.input_requirement_notification {
	width: 100%;
	color: var(--form_error_color);
	font-size: var(--form_notification_fontsize);
	min-height: 1.5em;
	padding: 0 var(--input_borderwidth);
	margin: 0 0 0.5em 0;
	display: inline-flex;
    align-items: center;
	justify-content: space-between;
    gap: 1em;
}
.input_error_notification > .icon,
.input_requirement_notification > .icon {
	min-width: 1.4em;
    width: 1.4em;
}
.input_requirement_notification.success {
	color: var(--form_success_color);
}
.input_requirement_notification:not(.success) > .icon.error,
.input_requirement_notification.success > .icon.success {
	display: block;
}
.input_requirement_notification.success > .icon.error,
.input_requirement_notification:not(.success) > .icon.success {
	display: none;
}
input,
select,
textarea,
label,
button.btn:not(.ghost),
a.btn:not(.ghost) {
	-webkit-tap-highlight-color: transparent;
}

/* qBox */
#qbox form > .icol:first-child {
	position: absolute;
	width: 100%;
	opacity: 0;
}
.qbox_istrip {
	height: var(--icon_size);
}
.qbox_istrip_icon_container {
	position: absolute;
	transform: translateX(-50%);
    display: flex;
    justify-content: center;
}
.qbox_istrip_icon_container > .icon {
	width: var(--icon_size);
	min-width: var(--icon_size);
}

@media screen and (hover: hover) and (pointer: fine) {
input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not(:focus):hover, textarea:not(:focus):hover, select:not(:focus):hover {
	color: var(--input_color_hover);
	background-color: var(--input_bg_hover);
	border: var(--input_borderwidth) solid var(--input_bordercolor_hover);
	box-shadow: var(--input_boxshadow_hover);
	transition: 0s;
}
button.btn:hover:not(:active), a.btn:hover:not(:active) {
	color: var(--button_color_hover);
	background-color: var(--button_bg_hover);
	border: var(--button_border_hover);
}
button.btn.ghost:hover:not(:active), a.btn.ghost:hover:not(:active) {
	color: var(--button_ghost_color_hover);
	background-color: var(--button_ghost_bg_hover, transparent);
	border: var(--button_ghost_borderwidth) solid var(--button_ghost_bg_hover);
}
button.btn.frameless:hover:not(:active), a.btn.frameless:hover:not(:active) {
	color: var(--button_frameless_color_hover, var(--button_ghost_color_hover));
}
button.btn.light:hover:not(:active), a.btn.light:hover:not(:active) {
	color: var(--button_light_color, var(--button_ghost_color));
	background-color: var(--button_light_bg_hover, transparent);
}
.check:not(.toggle):hover input:not(:disabled):not(:checked) + .check_desc:before {
	border: var(--check_border_hover);
	background-color: var(--check_bg_hover);
}
.check:not(.toggle):hover input[type="checkbox"]:not(:disabled):checked + .check_desc:before {
	border: var(--check_border_checked_hover);
	background-color: var(--check_bg_checked_hover);
}
.check:not(.toggle):hover > input:not(:disabled) + .check_desc {
	color: var(--check_color_hover);
}
.toggle:hover > input:not(:disabled) + .check_desc:after {
    box-shadow: var(--toggle_handle_boxshadow_hover);
}
.toggle:hover > input:not(:disabled) + .check_desc {
	color: var(--toggle_color_hover, var(--check_color_hover));
}
.check_tiles .check_desc:hover {
    background-color: var(--check_tile_bg_hover, var(--input_bg_hover));
	border-color: var(--check_tile_bordercolor_hover, var(--input_bordercolor));
}	
.input_overlay.clickable:hover .icon {
	stroke: var(--icon_stroke_clickable_hover);
}
input[type="range"]:hover::-webkit-slider-runnable-track {
	background-color: var(--range_track_bg_hover, var(--range_track_bg));
}
input[type="range"]:hover::-moz-range-track {
	background-color: var(--range_track_bg_hover, var(--range_track_bg));
}
input[type="range"]::-webkit-slider-thumb:hover {
	background-color: var(--range_thumb_bg_hover, var(--range_thumb_bg));
}
input[type="range"]::-moz-range-thumb:hover {
	background-color: var(--range_thumb_bg_hover, var(--range_thumb_bg));
}
}

@container form (max-width: 600px) {
.icol.margin_top {
	margin-top: calc(var(--form_gap_y) / 2);
}
.icol.margin_bottom {
	margin-bottom: calc(var(--form_gap_y) / 2);
}
.icol.margin {
	margin: calc(var(--form_gap_y) / 2) 0;
}
button.btn, a.btn {
	max-width: 100%;
}
}

@container form (max-width: 450px) {
.c450_col2  { grid-column-end: span 2; }
.c450_col3  { grid-column-end: span 3; }
.c450_col4  { grid-column-end: span 4; }
.c450_col5  { grid-column-end: span 5; }
.c450_col6  { grid-column-end: span 6; }
.c450_col7  { grid-column-end: span 7; }
.c450_col8  { grid-column-end: span 8; }
.c450_col9  { grid-column-end: span 9; }
.c450_col10 { grid-column-end: span 10; }
.c450_col11 { grid-column-end: span 11; }
.c450_col12 { grid-column-end: span 12; }
}

@container form (max-width: 400px) {
.c400_col2  { grid-column-end: span 2; }
.c400_col3  { grid-column-end: span 3; }
.c400_col4  { grid-column-end: span 4; }
.c400_col5  { grid-column-end: span 5; }
.c400_col6  { grid-column-end: span 6; }
.c400_col7  { grid-column-end: span 7; }
.c400_col8  { grid-column-end: span 8; }
.c400_col9  { grid-column-end: span 9; }
.c400_col10 { grid-column-end: span 10; }
.c400_col11 { grid-column-end: span 11; }
.c400_col12 { grid-column-end: span 12; }
}

@container form (max-width: 350px) {
.c350_col2  { grid-column-end: span 2; }
.c350_col3  { grid-column-end: span 3; }
.c350_col4  { grid-column-end: span 4; }
.c350_col5  { grid-column-end: span 5; }
.c350_col6  { grid-column-end: span 6; }
.c350_col7  { grid-column-end: span 7; }
.c350_col8  { grid-column-end: span 8; }
.c350_col9  { grid-column-end: span 9; }
.c350_col10 { grid-column-end: span 10; }
.c350_col11 { grid-column-end: span 11; }
.c350_col12 { grid-column-end: span 12; }
}

@container form (max-width: 300px) {
.c300_col2  { grid-column-end: span 2; }
.c300_col3  { grid-column-end: span 3; }
.c300_col4  { grid-column-end: span 4; }
.c300_col5  { grid-column-end: span 5; }
.c300_col6  { grid-column-end: span 6; }
.c300_col7  { grid-column-end: span 7; }
.c300_col8  { grid-column-end: span 8; }
.c300_col9  { grid-column-end: span 9; }
.c300_col10 { grid-column-end: span 10; }
.c300_col11 { grid-column-end: span 11; }
.c300_col12 { grid-column-end: span 12; }
}