/* CSS reboot */
*, *::before, *::after {
	box-sizing: border-box;
}

:root {
	--info: #c9e8fd;
	--warning: #cb6503;
	--danger: #dc3545;
	--text: #212529;
	--success: #198754;
	--radius: .5rem;
	--gradient: linear-gradient(to top, transparent 0, #8882 100%);
}

body {
	margin: 0;
	font-family: "Open Sans", sans-serif;
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.6;
	color: var(--text);
}

p {
	margin-top: 0;
	margin-bottom: 0.5rem;
}

p:has(+ h1),
p:has(+ h2),
p:has(+ h3),
p:has(+ h4),
p:has(+ h5),
p:has(+ h6) {
	margin-bottom: 1rem;
}

[data-href],
a {
	cursor: pointer;
	color: var(--secondary);
	text-decoration: none;
}

[data-href]:hover,
a:hover {
	text-decoration: underline;
	color: inherit;
}

label {
	display: inline-block;
	margin-bottom: 0;
}

pre {
	margin-bottom: 0.35rem;
}

address {
	font-weight: normal;
	font-style: normal;
	line-height: 1.2;
}

img, svg {
	vertical-align: middle;
}

ol, ul {
	margin-top: 0;
	margin-bottom: 1rem;
	padding-left: 2rem;
}

h1, h2, h3, h4, h5, h6 {
	font-weight: normal;
	margin: 0 0 1rem 0;
	line-height: 1.2;
}

h5, h6 {
	font-weight: normal;
	margin-bottom: 0.5rem;
}

hr {
	border-top: 1px solid var(--border);
}

table {
	width: 100%;
	margin-bottom: 1rem;
	border-collapse: collapse;
}

table th {
	padding: 0.75rem 0.5rem;
	text-align: left;
	vertical-align: bottom;
}

table td {
	padding: 0.5rem 0.5rem;
	vertical-align: middle;
}

table.td-padding-sm td {
	padding-top: 0.375rem;
	padding-bottom: 0.375rem;
}

@media (min-width: 1400px) {

	table td {
		padding: 0.5rem 0.75rem;
	}

	table th {
		padding: 0.75rem 0.75rem;
	}

}

table tr {
	transition: background-color 0.25s;
}

table.tbody-hover tbody:hover tr {
	background-color: rgba(0, 0, 0, 0.03) !important;
}

table.tbody-even tbody:nth-of-type(odd) tr {
	background-color: var(--background-odd);
}

table.tbody-even tbody:nth-of-type(even) tr {
	background-color: var(--background-even);
}

table.tr-hover tbody tr:hover {
	background-color: rgba(0, 0, 0, 0.03) !important;
}

table.tr-even tbody tr:nth-of-type(even) {
	background-color: var(--background-even);
}

table.tr-even tbody tr:nth-of-type(odd):not(tr.tr-title) {
    background-color: var(--background-odd);
}

table.tr-bordered tr {
	border-bottom: 1px solid #0002;
}

tr.tr-title {
	background-color: transparent !important;
	text-transform: uppercase;
	font-weight: bold;
}

div.div-even > *:nth-of-type(even) {
    background-color: white;
}

div.div-even > *:nth-of-type(odd) {
    background-color: var(--background-odd);
}

@media (min-width: 768px) {

	td.highlight,
	th.highlight {
		background: linear-gradient(to right, transparent 0, transparent 0.75rem, #8881 0.75rem, #8881 calc(100% - 0.75rem), transparent calc(100% - 0.75rem), transparent 100%);
		padding-left: 1.5rem;
		padding-right: 1.5rem;
	}

	td.highlight-stick-right,
	th.highlight-stick-right {
		background: linear-gradient(to right, transparent 0, transparent 0.75rem, #8881 0.75rem, #8881 100%);
		padding-left: 1.5rem;
		padding-right: 0.75rem;
	}

	td.highlight-stick-left,
	th.highlight-stick-left {
		background: linear-gradient(to right, #8881 0, #8881 calc(100% - 0.75rem), transparent calc(100% - 0.75rem), transparent 100%);
		padding-left: 0.75rem;
		padding-right: 1.5rem;
	}

	td.highlight-stick-both,
	th.highlight-stick-both {
		background: #8881;
		padding-left: 0.75rem;
		padding-right: 0.75rem;
	}

}

@media (max-width: 767px) {

	td.highlight,
	th.highlight {
		background: linear-gradient(to right, transparent 0, transparent 0.5rem, rgba(127, 127, 127, 0.05) 0.5rem, rgba(127, 127, 127, 0.05) calc(100% - 0.5rem), transparent calc(100% - 0.5rem), transparent 100%);
		padding-left: 1rem;
		padding-right: 1rem;
	}

	td.highlight-stick-right,
	th.highlight-stick-right {
		background: linear-gradient(to right, transparent 0, transparent 0.5rem, rgba(127, 127, 127, 0.05) 0.5rem, rgba(127, 127, 127, 0.05) 100%);
		padding-left: 1rem;
		padding-right: 0.5rem;
	}

	td.highlight-stick-left,
	th.highlight-stick-left {
		background: linear-gradient(to right, rgba(127, 127, 127, 0.05) 0, rgba(127, 127, 127, 0.05) calc(100% - 0.5rem), transparent calc(100% - 0.5rem), transparent 100%);
		padding-left: 0.5rem;
		padding-right: 1rem;
	}

	td.highlight-stick-both,
	th.highlight-stick-both {
		background: rgba(127, 127, 127, 0.05);
		padding-left: 0.5rem;
		padding-right: 0.5rem;
	}

}

@media (max-width: 1399px) {

	.stick-xl {
		width: calc(100% + 2 * var(--container-xl-padding));
		transform: translate3d(calc(-1 * var(--container-xl-padding)), 0, 0);
		border-radius: 0 !important;
	}

}

@media (max-width: 1199px) {

	.stick-lg {
		width: calc(100% + 2 * var(--container-lg-padding));
		transform: translate3d(calc(-1 * var(--container-lg-padding)), 0, 0);
		border-radius: 0 !important;
	}

}

@media (max-width: 991px) {

	.stick-lg,
	.stick-md {
		width: calc(100% + 2 * var(--container-md-padding));
		transform: translate3d(calc(-1 * var(--container-md-padding)), 0, 0);
		border-radius: 0 !important;
	}

}

@media (max-width: 767px) {

	.stick-lg,
	.stick-md,
	.stick-sm {
		width: calc(100% + 2 * var(--container-sm-padding));
		transform: translate3d(calc(-1 * var(--container-sm-padding)), 0, 0);
		border-radius: 0 !important;
	}

}

@media (max-width: 575px) {

	.stick-lg,
	.stick-md,
	.stick-xs,
	.stick-sm {
		width: calc(100% + 2 * var(--container-xs-padding));
		transform: translate3d(calc(-1 * var(--container-xs-padding)), 0, 0);
		border-radius: 0 !important;
	}

}

ul.list-inline {
	margin-bottom: 0px;
}

/* Forms */
input, button, select, optgroup, textarea {
	margin: 0;
	font-family: inherit;
	font-size: inherit;
	line-height: inherit;
}

button, select {
	text-transform: none;
}

button {
	cursor: pointer;
}

.opacity-100 {
	opacity: 1;
}

.opacity-75 {
	opacity: .75;
}

.opacity-50 {
	opacity: .5;
}

.opacity-25 {
	opacity: .25;
}

.fs-2 {
	font-size: 2rem;
}

.fs-3 {
	font-size: 3rem;
}

.mt-0 {
	margin-top: 0 !important;
}

.mt-1 {
	margin-top: 1rem !important;
}

.mt-2 {
	margin-top: 2rem !important;
}

.mt-3 {
	margin-top: 3rem !important;
}

.mt-4 {
	margin-top: 4rem !important;
}

.mb-0 {
	margin-bottom: 0 !important;
}

.mb-1 {
	margin-bottom: 1rem !important;
}

.mb-2 {
	margin-bottom: 2rem !important;
}

.mb-3 {
	margin-bottom: 3rem !important;
}

.mb-4 {
	margin-bottom: 4rem !important;
}

.ml-0 {
	margin-left: 0 !important;
}

.ml-1 {
	margin-left: 1rem !important;
}

.ml-2 {
	margin-left: 2rem !important;
}

.ml-3 {
	margin-left: 3rem !important;
}

.ml-4 {
	margin-left: 4rem !important;
}

.mr-0 {
	margin-right: 0 !important;
}

.mr-1 {
	margin-right: 1rem !important;
}

.mr-2 {
	margin-right: 2rem !important;
}

.mr-3 {
	margin-right: 3rem !important;
}

.mr-4 {
	margin-right: 4rem !important;
}

.font-xl {
	font-size: 1.2rem;
}

.font-lg {
	font-size: 1.1rem;
}

.font-md {
	font-size: 1rem;
}

.font-sm {
	font-size: 0.9rem;
}

.font-xs {
	font-size: 0.8rem;
}

input[type=checkbox], input[type=radio] {
	box-sizing: border-box;
	padding: 0;
	vertical-align: middle;
}

.form-calculation {
	padding: 0.375rem 0.75rem;
	font-size: 1rem;
	font-weight: normal;
	line-height: 1.5;
	color: var(--text);
	background-color: var(--background);
	background-clip: padding-box;
	border: 1px solid #0002;
	appearance: none;
	vertical-align: middle;
	transition: border-color 0.25s, box-shadow 0.25s;
}

.form-control,
.form-control-block {
	display: block;
	width: 100%;
	padding: 0.375rem 0.75rem;
	font-size: 1rem;
	font-weight: normal;
	line-height: 1.5;
	color: var(--text);
	background-color: #fff;
	background-clip: padding-box;
	border: 1px solid #0002;
	appearance: none;
	vertical-align: middle;
	border-radius: var(--radius);
	transition: border-color 0.25s, box-shadow 0.25s;
}

.form-control-xl {
	line-height: 2.5;
}

.form-control-lg {
	line-height: 2;
}

.form-control-block {
	padding: 1rem;
}

.form-control:focus {
	color: var(--text);
	background-color: #fff;
	border-color: #0005;
	outline: 0;
	box-shadow: 0 0 0.5rem rgba(0, 0, 0, 0.1);
}

.form-control.disabled,
.form-control[disabled],
.form-control:disabled {
	pointer-events: none;
	background-color: #CCC2;
}

.form-control.disabled:not(select),
.form-control[disabled]:not(select),
.form-control:disabled:not(select) {
	color: #000B;
}

select.form-control {
	padding-right: 1.75rem;
	background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");
	background-repeat: no-repeat;
	background-position: right 0.75rem center;
	background-size: 16px 12px;
}

textarea.form-control {
	height: 10em;
}

.form-control[type="color"] {
	padding: 0.25rem;
}

div.input-group {
	/*position: relative; inutile ?*/
	display: inline-flex;
	flex-wrap: wrap;
	align-items: stretch;
	width: 100%;
}

div.input-group-lg .form-control {
	line-height: 2;
}

div.form-control-field div.input-group {
	width: 100%;
}

div.form-control-field h3 {
	margin-bottom: .5rem;
}

div.input-group > * {
	border-radius: 0;
}

div.input-group > *:first-child {
	border-top-left-radius: var(--radius) !important;
	border-bottom-left-radius: var(--radius) !important;
}

div.input-group > *:last-child {
	border-top-right-radius: var(--radius) !important;
	border-bottom-right-radius: var(--radius) !important;
}

div.input-group > *:not(:first-child) {
	margin-left: -1px;
}

div.input-group > .form-control {
	flex: 1;
	min-width: 0;
}

div.input-group > .btn:hover {
	z-index: 1;
}

div.input-group > .form-control:focus {
	z-index: 2;
}

div.input-group > .input-group-element,
div.input-group > .input-group-addon,
div.input-group > .field-checkbox {
	display: flex;
	align-items: center;
	padding: 0.375rem 0.75rem;
	font-size: 1rem;
	font-weight: normal;
	line-height: 1.5;
}

div.input-group > .input-group-addon,
div.input-group > .field-checkbox {
	color: var(--text);
	text-align: center;
	white-space: nowrap;
	background-color: var(--background);
	border: 1px solid #0002;
}

@media (max-width: 575px) {

	div.input-group > .input-group-addon,
	div.input-group > .field-checkbox {
		padding: 0.375rem 0.5rem;
		font-size: 0.9rem;
	}

}

/* Text */
.text-sm {
	font-size: 0.9rem;
}

/* Icon */

.asset-icon {
	display: inline-block;
	width: calc(1em + 1px);
	margin-top: -0.125rem;
	height: 1em;
	pointer-events: none;
}

.asset-icon-rotate-90 {
	transform: rotate(90deg);
}

.asset-icon-rotate--90 {
	transform: rotate(-90deg);
}

.asset-icon-flip-h {
	transform: scaleX(-1);
}

.asset-icon-flip-v {
	transform: scaleY(-1);
}

/* Containers */
:root {

	--container-xs-padding: 0.75rem;
	--container-sm-padding: 1rem;
	--container-md-padding: 1.5rem;
	--container-lg-padding: 2rem;
	--container-xl-padding: 2rem;

}

@media (max-width: 575px) {

	:root {
		--container-padding: var(--container-xs-padding);
	}

}

@media (min-width: 576px) and (max-width: 767px) {

	:root {
		--container-padding: var(--container-sm-padding);
	}

}

@media (min-width: 768px) and (max-width: 991px) {

	:root {
		--container-padding: var(--container-md-padding);
	}

}

@media (min-width: 992px) and (max-width: 1199px) {

	:root {
		--container-padding: var(--container-lg-padding);
	}

}

@media (min-width: 1200px) {

	:root {
		--container-padding: var(--container-xl-padding);
	}

}

@media (max-width: 575px) {

	:root {
		--responsive-padding: var(--container-xs-padding);
	}

}

@media (min-width: 576px) {

	:root {
		--responsive-padding: 1rem;
	}

}

.container {
	width: 100%;
	max-width: 1600px;
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--container-padding);
	padding-right: var(--container-padding);
}

@media (max-width: 449px) {

	.hide-xxs-down {
		display: none !important;
	}

}

@media (max-width: 575px) {

	.hide-xs-down {
		display: none !important;
	}

}

@media (min-width: 450px) {

	.hide-xs-up {
		display: none !important;
	}

}

@media (min-width: 576px) {

	.hide-sm-up {
		display: none !important;
	}

}

@media (max-width: 767px) {

	.hide-sm-down {
		display: none !important;
	}

}

@media (min-width: 768px) {

	.hide-md-up {
		display: none !important;
	}

}

@media (max-width: 991px) {

	.hide-md-down {
		display: none !important;
	}

}

@media (min-width: 992px) {

	.hide-lg-up {
		display: none !important;
	}

}

@media (max-width: 1199px) {

	.hide-lg-down {
		display: none !important;
	}

}

@media (max-width: 1599px) {

	.hide-xl-down {
		display: none !important;
	}

}

@media (max-width: 1199px), (max-height: 599px) {

	.hide-lateral-down {
		display: none !important;
	}

}

@media (min-width: 1200px) {

	.hide-xl-up {
		display: none !important;
	}

}
@media (min-width: 1600px) {

	.hide-xxl-up {
		display: none !important;
	}

}

@media (min-width: 1200px) and (min-height: 600px) {

	.hide-lateral-up {
		display: none !important;
	}

}

.hide {
	display: none !important;
}

.not-visible {
	visibility: hidden;
}

body[data-touch="yes"] .hide-touch {
	display: none !important;
}

body[data-touch="no"] .hide-notouch {
	display: none !important;
}

/* Utilities */
@media (min-width: 576px) {

	.util-section {
		border-left: 2px solid var(--secondary);
		padding-left: 1rem;
	}

}

.util-quick {
	display: inline-block;
	border-bottom: 2px dotted transparent;
	margin-bottom: -2px;
}

a.util-quick {
	color: inherit;
}

.util-quick:hover {
	text-decoration: none;
	border-color: var(--primary);
	cursor: pointer;
}

.util-quick-dropdown {
	padding: 1rem;
	background-color: var(--primary);
	color: white;
}

.util-quick-form {
	display: grid;
	grid-template-columns: 1fr;
	grid-row-gap: 0.5rem;
	justify-items: stretch;
}

.util-quick-form h4 {
	margin-bottom: 0;
}

table th,
.util-grid-header {
	font-size: 0.85rem;
	text-transform: uppercase;
	align-self: end;
	padding-top: 0.75rem;
	padding-bottom: 0.5rem;
	font-weight: normal;
	line-height: 1.3;
}

.td-min-content {
	width: 1%;
	white-space: nowrap;
}

tr:not(:last-child):has(> .td-border) .td-border {
	border-bottom: 1px dashed var(--border);
}

.td-checkbox {
	background-color: #0001;
	text-align: center;
	padding: 0;
	width: 3rem;
}

.td-checkbox > label {
	display: flex;
	align-items: center;
	justify-content: center;
	padding-left: 0.5rem;
	padding-right: 0.5rem;
}

thead .td-checkbox {
	background-color: transparent;
}

thead .td-checkbox > label {
	padding-top: 0.5rem;
	padding-bottom: 0.5rem;
}

tbody .td-checkbox > label {
	min-height: 2.75rem;
}

.util-grid-icon {
	font-size: 1.1rem;
}

.util-info,
.util-success,
.util-warning,
.util-warning-outline,
.util-danger {
	margin-bottom: 1.5rem;
	padding: 0.5rem 1rem 0.5rem;
	line-height: 1.6;
}

@media print {

	.util-info,
	.util-success,
	.util-warning,
	.util-warning-outline,
	.util-danger {
		display: none;
	}

}

.util-info p:last-child,
.util-success p:last-child,
.util-warning p:last-child,
.util-warning-outline p:last-child,
.util-danger p:last-child {
	margin-bottom: 0;
}

.util-info {
	border: 1px solid var(--secondary);
	border-radius: var(--radius);
	color: var(--secondary);
}

.util-info a:not(.btn) {
	text-decoration: underline;
}

.util-warning {
	border-radius: var(--radius);
	background-color: var(--warning);
	color: white;
}

.util-warning a:not(.btn) {
	color: white;
	text-decoration: underline;
}

.util-warning-outline {
	border: 1px solid var(--warning);
	border-radius: var(--radius);
	color: var(--warning);
}

.util-warning-outline a:not(.btn) {
	color: var(--warning);
	text-decoration: underline;
}

.util-success {
	border: 1px solid var(--success);
	border-radius: var(--radius);
	color: var(--success);
}

.util-success a:not(.btn) {
	color: var(--success);
	text-decoration: underline;
}

.util-danger {
	border-radius: var(--radius);
	background-color: var(--danger);
	color: white;
}

.util-danger a:not(.btn) {
	color: white;
	text-decoration: underline;
}

@media (max-width: 449px) {

	.util-overflow-xs {
		overflow-x: auto;
	}

	.util-overflow-xs > * {
		min-width: calc(449px - 2 * var(--container-xs-padding));
	}

}

@media (max-width: 575px) {

	.util-overflow-sm {
		overflow-x: auto;
	}

	.util-overflow-sm > * {
		min-width: calc(575px - 2 * var(--container-sm-padding));
	}

}

@media (max-width: 767px) {

	.util-overflow-md {
		overflow-x: auto;
	}

	.util-overflow-md > * {
		min-width: calc(767px - 2 * var(--container-md-padding));
	}

}

@media (max-width: 991px) {

	.util-overflow-lg {
		overflow-x: auto;
	}

	.util-overflow-lg > * {
		min-width: calc(991px - 2 * var(--container-md-padding));
	}

}

.util-overflow {
	overflow-x: auto;
}

.util-overflow > * {
}

.util-checkbox {
	display: flex;
	align-items: center;
	justify-content: center;
}

.util-title,
.util-action {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.25rem;
}

.util-title {
	margin-bottom: 1rem;
}

.util-action > *,
.util-title > * {
	margin-bottom: 0;
}

.util-action > * {
	margin-bottom: 0;
}

.util-action h1 {
	user-select: none;
}

a.util-action-navigation > svg {
	font-size: 1.3rem;
	vertical-align: baseline;
}

a.util-action-navigation:hover > svg:nth-of-type(1),
a.util-action-navigation[data-dropdown-display] > svg:nth-of-type(1) {
	display: none;
}

a.util-action-navigation:not(:hover):not([data-dropdown-display]) > svg:nth-of-type(2) {
	display: none;
}

div.util-subtitle {
	margin-top: 0.5rem;
	font-size: 1.15rem;
}

@media (max-width: 575px) {

	div.util-subtitle {
		font-size: 1rem;
	}

}

.util-helper {
	font-size: 0.9rem;
	color: var(--secondary);
}

.util-annotation {
	font-size: 90%;
	line-height: 1.2;
	color: var(--muted);
}

.util-badge {
	font-size: 90%;
	line-height: 1.2;
	display: inline-block;
	padding: calc(0.375rem / 2) 0.375rem;
	border-radius: calc(var(--radius) / 2);
	color: white;
}

.util-empty {
	color: var(--muted);
	margin-bottom: 1rem;
}

.util-block,
.util-block-help,
.util-card {
	border-radius: var(--radius);
	margin-bottom: 1rem;
	padding: 1rem;
}

.util-block p:last-child,
.util-block p:last-child,
.util-block-help p:last-child,
.util-card p:last-child {
	margin-bottom: 0;
}

table.util-block tbody:last-child tr:last-child td:first-child,
table.util-block tbody:last-child tr:last-child td:first-child {
	border-bottom-left-radius: var(--radius);
}

table.util-block tbody:last-child tr:last-child td:last-child {
	border-bottom-right-radius: var(--radius);
}

.util-block {
	background: white;
}

.util-block-separator {
	margin: 0.5rem -1rem;
	border-bottom: 1px solid var(--border);
}

.util-block-optional {
	padding: 1rem;
	border: 3px dashed var(--border);
	margin-bottom: 1rem;
	border-radius: var(--radius);
}

.util-block-help {
	padding: 1.25rem 1rem  1rem;
	background-color: var(--info);
	line-height: 1.5;
	position: relative;
	min-height: 4rem;
}

.util-block-help {
	padding-left: 4.5rem;
}

.util-block-help h4 {
	font-weight: bold;
	height: 2.5rem;
	margin-bottom: 0.5rem;
	display: flex;
	align-items: center;
}

.util-block-help h4:first-child {
	margin-top: -0.5rem;
}

.util-block-help a:not(.btn) {
	text-decoration: underline;
	color: var(--text);
}

.util-block-help:before {
	position: absolute;
	content: 'i';
	font-style: italic;
	float: left;
	color: white;
	top: .75rem;
	left: 1rem;
	width: 2.5rem;
	height: 2.5rem;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 2rem;
	line-height: 1;
	border-radius: 50%;
	font-family: Serif;
}

.util-block-help:before {
	background-color: var(--secondary);
	content: 'i';
}

.util-block-dark {
	color: white;
}

.util-block-search {
	background: var(--info);
	padding: var(--container-sm-padding);
	border-radius: var(--radius);
	margin-bottom: 1rem;
	position: relative;
}

.util-block-gradient {
	background: var(--gradient);
	padding: var(--container-sm-padding);
	border-top-left-radius: var(--radius);
	border-top-right-radius: var(--radius);
	margin-bottom: 1rem;
}

@media (max-width: 575px) {

	.util-block-gradient,
	.util-block-search {
		padding: var(--container-xs-padding);
	}

}

.util-block-title {
	font-size: 0.9rem;
	text-transform: uppercase;
	color: var(--muted);
	letter-spacing: 1px;
	margin-bottom: 0.5rem;
}

.util-card {
	background: white;
}

.util-card-header {
	padding: 1rem;
	background: var(--background-light);
	border-bottom: 1px solid var(--border);
	border-top-left-radius: .5rem;
	border-top-right-radius: .5rem;
}

.util-card-body {
	padding: 1rem;
}

.util-card-footer {
	padding: 1rem;
	background: var(--background-light);
	border-top: 1px solid var(--border);
	border-bottom-left-radius: .5rem;
	border-bottom-right-radius: .5rem;
}

.util-box-danger,
.util-box-warning,
.util-box-success {
	z-index:2000;
	padding: 1rem;
	border-radius: var(--radius);
	margin-bottom: 1rem;
}

a.util-box-close {
	color: white;
	position: absolute;
	top: 0;
	right: 0;
	padding: 1rem;
}

.util-box-danger {
	background-color: var(--danger);
	color: white;
}

.util-box-success {
	background-color: var(--success);
	color: white;
}

.util-box-warning {
	background-color: var(--warning);
	color: white;
}

.util-box-sticked {
	margin-bottom: 0;
	left: 1rem;
	bottom: 1rem;
	right: 1rem;
	position: fixed;
	box-shadow: 0px -5px 5px rgba(0, 0, 0, 0.1);
	font-size: 1.1rem;
	transition: all 0.25s;
}

.util-box-remove {
	opacity: 0;
}

ul.util-summarize {
	display: flex;
	gap: 1rem;
	flex-wrap: wrap;
	margin: 0;
	padding: 0;
	list-style-type: none;
}

ul.util-summarize-overflow {
	overflow-x: auto;
	flex-wrap: nowrap;
}

ul.util-summarize-last {
	align-self: end;
}

ul.util-summarize:not(:last-child) {
	margin-bottom: 1rem;
}

ul.util-summarize li {
	font-size: 1.5rem;
	font-weight: lighter;
	line-height: 1.2;
	padding: 1rem;
	text-align: center;
	border-radius: var(--radius);
}

ul.util-summarize li.selected {
	background-color: var(--background);
}

ul.util-summarize li > a:not(.btn) {
	display: block;
	margin: -1rem;
	padding: 1rem;
	border-radius: var(--radius);
	background: linear-gradient(to top, transparent 0%, var(--background) 100%);
	border: 0px solid var(--secondary);
}

ul.util-summarize li.selected > a:not(.btn),
ul.util-summarize li > a:hover {
	text-decoration: none;
	background: var(--secondary);
	color: white;
}

ul.util-summarize li h5 {
	padding-bottom: 0.5rem;
	margin-bottom: 0.5rem;
	font-weight: normal;
	font-size: 1.1rem;
	border-bottom: 1px solid var(--secondary);
	color: var(--muted);
}

ul.util-summarize li.selected > a h5,
ul.util-summarize li > a:not(.btn):hover h5 {
	color: white;
	border-bottom: 1px solid #fff8;
}

ul.util-summarize li > div:not(:last-child) {
	margin-bottom: 0.25rem;
}

ul.util-summarize li .util-summarize-muted {
	font-size: 0.9rem;
	color: var(--muted);
	margin-top: 0.5rem;
}

ul.util-summarize li.selected .util-summarize-muted,
ul.util-summarize li > a:not(.btn):hover .util-summarize-muted {
	color: #fffd;
}

@media (max-width: 575px) {

	ul.util-summarize li {
		font-size: 1.4rem;
		padding: 0.5rem;
	}

	ul.util-summarize li h5 {
		font-size: 1rem;
	}

	ul.util-summarize li > a:not(.btn) {
		padding: 0.75rem;
		margin: -0.5rem;
	}

}

dl.util-presentation {
	display: grid;
	margin: 0;
	padding: 0;
	grid-column-gap: 1rem;
	grid-row-gap: 0.25rem;
	grid-auto-rows: min-content;
	align-items: baseline;
}

dl.util-presentation-max-content {
	display: grid;
	margin: 0;
	padding: 0;
	grid-column-gap: 1rem;
	grid-row-gap: 0.125rem;
	grid-auto-rows: min-content;
	align-items: baseline;
}

@media (max-width: 575px) {

	dl.util-presentation {
		grid-template-columns: auto 1fr;
	}

}

@media (min-width: 576px) {

	dl.util-presentation-1 {
		grid-template-columns: auto 1fr;
	}

	dl.util-presentation-2,
	dl.util-presentation-3 {
		grid-template-columns: auto 1fr auto 1fr;
	}

	dl.util-presentation-max-content.util-presentation-2,
	dl.util-presentation-max-content.util-presentation-3 {
		grid-template-columns: auto minmax(max-content, 1fr) auto minmax(max-content, 1fr);
	}

	dl.util-presentation-2 dd.util-presentation-fill,
	dl.util-presentation-3 dd.util-presentation-fill {
		grid-column: span 3;
	}

}

@media (min-width: 992px) {

	dl.util-presentation-3 {
		grid-template-columns: auto 1fr auto 1fr auto 1fr;
	}

	dl.util-presentation-3 dd.util-presentation-fill {
		grid-column: span 5;
	}

}

dl.util-presentation dt {
	color: var(--muted);
	padding: 0;
	margin: 0;
}

dl.util-presentation dd {
	font-weight: bold;
	padding: 0;
	margin: 0;
}
dl.util-presentation dd a:not(.btn) {
	color: inherit;
}

dl.util-presentation dt:not(:empty) + dd:empty:before {
	content: '/';
	font-weight: normal;
	color: var(--muted);
}


.pagination-wrapper {
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	margin-bottom: 1rem;
	gap: 1rem;
}

ul.pagination {
	list-style-type: none;
	display: flex;
	flex-wrap: wrap;
	grid-auto-flow: column;
	gap: 0.5rem;
	margin: 0;
	padding: 0;
}

div.util-alert {
	position: fixed;
	bottom: 40px;
	z-index: 100;
}

td.util-manage-vignette {
	width: 3rem;
}

/* Flex */
.flex-align-center {
	display: flex;
	align-items: center;
	grid-column-gap: 1rem;
}

/* Text */
.text-start {
	text-align: left;
}
.text-end {
	text-align: right;
}
.text-center {
	text-align: center;
}

/* Colors */
.color-text {
	color: var(--text) !important;
}
.color-primary {
	color: var(--primary) !important;
}
.color-secondary {
	color: var(--secondary) !important;
}
.color-info {
	color: var(--info) !important;
}
.color-success {
	color: var(--success) !important;
}
.color-success a {
	color: var(--success) !important;
	text-decoration: underline;
}
.color-danger {
	color: var(--danger) !important;
}
.color-danger a {
	color: var(--danger) !important;
	text-decoration: underline;
}
.color-warning {
	color: var(--warning) !important;
}
.color-warning a {
	color: var(--warning) !important;
	text-decoration: underline;
}
.color-muted {
	color: var(--muted) !important;
}
.color-white {
	color: white !important;
}

/* Background */
.bg-primary {
	background-color: var(--primary) !important;
}
.bg-secondary {
	background-color: var(--secondary) !important;
}
.bg-info {
	background-color: var(--info) !important;
}
.bg-success {
	background-color: var(--success) !important;
}
.bg-danger {
	background-color: var(--danger) !important;
}
.bg-warning {
	background-color: var(--warning) !important;
}
.bg-muted {
	background-color: var(--muted) !important;
}
.bg-background {
	background-color: var(--background) !important;
}
.bg-background-light {
	background-color: var(--background-light) !important;
}
.bg-white {
	background-color: white !important;
}

/* Annotation */

.annotation {
	font-size: 0.9rem;
	font-weight: bold;
	border-bottom-width: 2px;
	border-bottom-style: solid;
}

.annotation-lg {
	font-size: 1rem;
}

/* Button */

.btn {
	display: inline-block;
	font-weight: normal;
	line-height: 1;
	color: var(--text);
	text-align: center;
	vertical-align: middle;
	user-select: none;
	background-color: transparent;
	border: 1px solid transparent;
	padding: 0.625rem 0.75rem;
	white-space: nowrap;
	font-size: 1rem;
	transition: color 0.25s, background-color 0.25s, border-color 0.25s, box-shadow 0.25s;
}

.btn-group {
	display: inline-block;
}

.btn-group .btn:not(:last-child) {
	border-top-right-radius: 0;
	border-bottom-right-radius: 0;
}

.btn-group .btn:not(:first-child) {
	border-top-left-radius: 0;
	border-bottom-left-radius: 0;
}

.btn-group .btn:not(:first-child) {
	margin-left: -1px;
}

@media print {

	.btn-group,
	.btn {
		display: none;
	}

}

.btn:not(.btn-rectangle) {
	border-radius: var(--radius);
}

.btn:not(.btn-readonly) {
	cursor: pointer;
}

.btn-readonly .btn,
.btn.btn-readonly {
	cursor: default;
}

.btn.disabled {
	pointer-events: none;
	opacity: 0.33;
}

.input-group .btn,
.input-group .btn.btn-sm,
.input-group .btn.btn-xs {
	border-radius: 0;
}

@media (max-width: 575px) {

	.btn.btn-panel {
		height: 3rem;
		width: 3rem;
		border-radius: 1.5rem;
		display: flex;
		align-items: center;
		justify-content: center;
		font-size: 1.3rem;
	}

}

.btn.btn-xs {
	padding: 0.375rem 0.5rem;
	font-size: 0.85rem;
	border-radius: var(--radius);
}

.btn.btn-sm {
	padding: 0.5rem 0.625rem;
	font-size: 0.9rem;
	border-radius: var(--radius);
}

.btn.btn-lg {
	padding: 0.875rem 1rem;
	font-size: 1.1rem;
}

.btn.btn-xl {
	padding: 1.25rem 1.5rem;
	font-size: 1.1rem;
}

.btn.btn-selected {
	font-weight: bold;
	background-color: var(--background-light);
	position: relative;
	z-index: 100;
}

.btn.dropdown-toggle:after {
	font-size: inherit;
}

a.btn {
	text-decoration: none;
}

label.btn input {
	display: none;
}

label.btn input:checked + * {
	font-weight: bold;
}

.btn-form {
	color: var(--text);
	background-color: white;
	border: 1px solid var(--border);
}

.btn-exit {
	font-size: 3rem;
	font-weight: lighter;
	line-height: 1;
	opacity: 1;
}

.btn-primary,
.btn-outline-primary:not(.btn-readonly):hover {
	color: white;
	background-color: var(--primary);
	border-color: var(--primary);
}

.btn-primary:not(.btn-readonly):hover {
	color: white;
	box-shadow: inset 0px 0px 0 100px rgba(0, 0, 0, .1);
}

.btn-outline-primary {
	color: var(--primary);
	border-color: var(--primary);
}

.btn-color-primary {
	background: rgba(255, 255, 255, 0.8);
	color: var(--primary);
}

.btn-color-primary:not(.btn-readonly):hover {
	background: var(--primary);
	color: white;
}

.btn-secondary,
.btn-outline-secondary:not(.btn-readonly):hover {
	color: white;
	background-color: var(--secondary);
	border-color: var(--secondary);
}

.btn-secondary:not(.btn-readonly):hover {
	color: white;
	box-shadow: inset 0px 0px 0 100px rgba(0, 0, 0, .1);
}

.btn-outline-secondary {
	color: var(--secondary);
	border-color: var(--secondary);
}

.btn-secondary-dark,
.btn-outline-secondary-dark:not(.btn-readonly):hover {
	color: white;
	background-color: var(--secondary-dark);
	border-color: var(--secondary-dark);
}

.btn-secondary-dark:not(.btn-readonly):hover {
	color: white;
	box-shadow: inset 0px 0px 0 100px rgba(0, 0, 0, .1);
}

.btn-outline-secondary-dark {
	color: var(--secondary-dark);
	border-color: var(--secondary-dark);
}

.btn-info,
.btn-outline-info:not(.btn-readonly):hover {
	background-color: var(--info);
	border-color: var(--info);
}

.btn-info:not(.btn-readonly):hover {
	box-shadow: inset 0px 0px 0 100px rgba(0, 0, 0, .1);
}

.btn-outline-info {
	color: var(--info);
	border-color: var(--info);
}

.btn-outline-border:not(.btn-readonly):hover {
	background-color: var(--background);
}

.btn-outline-border {
	color: var(--text);
	border-color: var(--border);
}

.btn-order,
.btn-outline-order:not(.btn-readonly):hover {
	color: white;
	background-color: var(--order);
	border-color: var(--order);
}

.btn-order:not(.btn-readonly):hover {
	color: white;
	box-shadow: inset 0px 0px 0 100px rgba(0, 0, 0, .1);
}

.btn-outline-order {
	color: var(--order);
	border-color: var(--order);
}

.btn-success,
.btn-outline-success:not(.btn-readonly):hover {
	color: white;
	background-color: var(--success);
	border-color: var(--success);
}

.btn-success:not(.btn-readonly):hover {
	color: white;
	box-shadow: inset 0px 0px 0 100px rgba(0, 0, 0, .1);
}

.btn-outline-success {
	color: var(--success);
	border-color: var(--success);
}

.btn-danger,
.btn-outline-danger:not(.btn-readonly):hover {
	color: white;
	background-color: var(--danger);
	border-color: var(--danger);
}

.btn-danger:not(.btn-readonly):hover {
	color: white;
	box-shadow: inset 0px 0px 0 100px rgba(0, 0, 0, .1);
}

.btn-outline-danger {
	color: var(--danger);
	border-color: var(--danger);
}

.btn-warning,
.btn-outline-warning:not(.btn-readonly):hover {
	color: white;
	background-color: var(--warning);
	border-color: var(--warning);
}

.btn-warning:not(.btn-readonly):hover {
	color: white;
	box-shadow: inset 0px 0px 0 100px rgba(0, 0, 0, .1);
}

.btn-outline-warning {
	color: var(--warning);
	border-color: var(--warning);
}

.btn-transparent {
	background: #0003;
	color: white;
}

.btn-transparent:not(.btn-readonly):hover {
	background: #0005;
	color: white;
}

.btn-outline-transparent {
	border: 1px solid white;
	background: #0003;
	color: white;
}

.btn-outline-transparent:not(.btn-outline-readonly):hover {
	background: #0005;
	color: white;
}

.btn-outline-muted {
	color: var(--muted);
	border-color: var(--muted);
}

.btn-muted,
.btn-outline-muted:hover {
	background: var(--muted);
	color: white;
}

.btn-muted:not(.btn-readonly):hover {
	color: white;
}

.btn-border {
	border-color: var(--border);
	color: var(--text);
}

.btn-border:not(.btn-readonly):hover {
	box-shadow: inset 0px 0px 0 100px var(--background);
}

/* Waiter */
@keyframes waiterRotate {
	 0% { transform: rotate(0deg); }
	 100% { transform: rotate(360deg); }
}

.waiter {
	position: fixed;
	top: 0;
	bottom: 0;
	right: 0;
	left: 0;
	background-color: #fffc;
	display: flex;
	justify-content: center;
	align-items: center;
	font-size: 4rem;
	color: var(--secondary);
}

.waiter .asset-icon {
	animation: waiterRotate 2s linear infinite;
}

/* Panel */
@media screen {

	body.panel-open {
		overflow: hidden;
		padding-right: 15px;
		width: 100vw;
	}

	.panel {
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
	}

}

@media print {

	body.panel-open {
		width: 100vw;
	}

	body.panel-open nav,
	body.panel-open header,
	body.panel-open main,
	body.panel-open footer {
		display: none;
	}

	.panel {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
	}

}

.panel {
	display: none;
	background-color: white;
}

body[data-touch="no"] .panel {
	transition: opacity 0.25s;
}

body[data-touch="no"] .panel.closing {
	opacity: 0;
}

body[data-touch="yes"] .panel {
	transition: left 0.33s;
}

body[data-touch="yes"] .panel.closing {
	left: -100%;
	overflow: hidden;
}

.panel.open {
	display: block;
}

@media screen {

	.panel.open {
		overflow-y: scroll;
	}

}

.panel.open.closing-last {
	overflow-y: hidden;
}

.panel-dialog {
	position: relative;
	display: flex;
	flex-direction: column;
	width: 100%;
	min-height: 100vh;
	outline: 0;
	pointer-events: none;
}

.panel-dialog.container {
	max-width: 1400px;
}

.panel-dialog > * {
	pointer-events: auto;
}

.panel-back-wrapper {
	display: grid;
	grid-template-columns: min-content 1fr;
	grid-column-gap: 1rem;
	align-items: center;
}

a.panel-back {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 2.3rem;
	background-color: var(--secondary);
	color: white;
	border-radius: 50%;
	width: 3rem;
	height: 3rem;
	line-height: 1;
	transition: background-color 0.5s;
}

a.panel-back:hover {
	color: white;
	background-color: var(--primary);
}

.panel-title {
	margin: 0;
	font-size: 1.75rem;
}

@media (max-width: 575px) {

	.panel-title {
		font-size: 1.5rem;
	}
}

@media (min-width: 576px) {

	.panel-title {
		padding-right: 1rem;
	}
}


.panel-subtitle {
	margin: 0;
	font-size: 1.25rem;
	color: var(--muted);
}


.panel-title + .panel-subtitle {
	margin-top: 0.5rem;
}

.panel-body {
	position: relative;
	z-index: 1;
	flex: 1;
}

@media (max-width: 575px) {

	.panel-body {
		padding: var(--container-xs-padding) 0;
	}

}

@media (min-width: 576px) {

	.panel-body {
		padding: 1rem 0;
	}

}

.panel-footer:not(:empty) {
	position: sticky;
	bottom: 0;
	z-index: 1;
	background-color: white;
	border-top: 1px solid var(--border);
}

@media (max-width: 575px) {

	.panel-footer:not(:empty) {
		margin-left: calc(-1 * var(--container-xs-padding));
		margin-right: calc(-1 * var(--container-xs-padding));
		padding: var(--container-xs-padding);
	}

}

.panel-footer:empty {
	height: 4rem;
}

@media (min-width: 576px) {

	.panel-footer {
		padding: 1rem 0;
	}

}

.panel-header {
	position: sticky;
	top: 0;
	display: grid;
	align-items: center;
	justify-content: space-between;
	z-index: 2;
	background-color: white;
	border-bottom: 1px solid var(--border);
	border-top-left-radius: 0.25rem;
	border-top-right-radius: 0.25rem;
}

@media (max-width: 575px) {

	.panel-header {
		margin-left: calc(-1 * var(--container-xs-padding));
		margin-right: calc(-1 * var(--container-xs-padding));
		padding: var(--container-xs-padding);
	}

}

body[data-touch="yes"] .panel-header {
	grid-template: "mobile content" auto / auto 1fr;
}

body[data-touch="no"] .panel-header {
	grid-template: "content desktop" auto / 1fr auto;
}

@media (min-width: 576px) {

	.panel-header {
		padding: 1rem 0;
	}

}

.panel-header:empty {
	display: none;
}

.panel-header-subtitle {
	font-size: 1.2rem;
	margin-top: 0.25rem;
}

.panel-header-content {
	grid-area: content;
}

.panel-backdrop {
	position: fixed;
	display: none;
	top: 0;
	left: 0;
	width: calc(100% - 15px);
	height: 100%;
}

.panel-close {
	font-weight: lighter;
	line-height: 1;
	padding: 1rem;
	font-size: 2.5rem;
	grid-area: close;
	margin: -1rem 0 -1rem -1rem;
}

.panel-close-desktop,
.panel-close-mobile {
	font-weight: lighter;
	line-height: 1;
	padding: 1rem;
	user-select: none;
}

.panel-close-desktop {
	font-size: 3rem;
}

.panel-close-mobile {
	font-size: 2.5rem;
}

.panel-close-desktop {
	grid-area: desktop;
	margin: -1rem -1rem -1rem 0;
}

.panel-close-mobile {
	grid-area: mobile;
	margin: -1rem 0 -1rem -1rem;
}

body[data-touch="no"] .panel-close-mobile {
	display: none;
}

body[data-touch="yes"] .panel-close-desktop {
	display: none;
}

/* Tabs */
.nav {
	display: flex;
	flex-wrap: wrap;
	column-gap: 0.5rem;
	padding-left: 0;
	margin-bottom: 0;
	list-style: none;
}

.nav.nav-background {
	background-color: #fafafa;
	border: 1px solid #eee;
	border-radius: 3px;
	margin-top: 1rem;
	padding: 0.75rem;
}

.nav-link {
	display: block;
	padding: 0.5rem 1rem;
	transition: color 0.25s;
	border-radius: var(--radius);
}

.nav-link.active,
.nav-link:hover {
	color: #fff;
	background-color: var(--secondary);
	text-decoration: none;
}

.emoji {
	height: 1.52em;
	width: 1.52em;
	margin: 0 .05em 0 .1em;
	vertical-align: -0.5em;
}

/* Dropdowns */
body.dropdown-fullscreen-open {
	overflow: hidden;
}

body.dropdown-fullscreen-open[data-touch="no"] {
	padding-right: 15px;
	width: 100vw;
}

.dropdown-placeholder {
	display: none;
}

.dropdown-list {
	display: none;
	grid-template-columns: 1fr;
}

.dropdown-list:not(.dropdown-list-unstyled) {
	border: 1px solid #fff;
	border-radius: var(--radius);
}

.dropdown-list:not(.dropdown-list-unstyled):not(.dropdown-list-minimalist) {
	background-color: var(--primary);
	padding: 0.5rem 0;
}

.dropdown-list:not(.dropdown-list-unstyled):not(.dropdown-list-minimalist).dropdown-list-bottom {
	background: linear-gradient(to bottom, rgba(0, 0, 0, 0.25) 0, transparent 100%);
}

.dropdown-list:not(.dropdown-list-unstyled):not(.dropdown-list-minimalist).dropdown-list-top {
	background: linear-gradient(to top, rgba(0, 0, 0, 0.25) 0, transparent 100%);
}

.dropdown-list.fullscreen-closing {
	opacity: 0;
}

.dropdown-list.dropdown-list-open {
	display: grid;
	max-height: calc(100vh - 3rem);
	overflow-y: auto;
}

.dropdown-list.dropdown-list-2 {
	grid-template-columns: 1fr 1fr;
}

.dropdown-list.dropdown-list-3 {
	grid-template-columns: 1fr 1fr 1fr;
}

body[data-touch="no"] .dropdown-list.dropdown-list-open:not(.dropdown-list-unstyled) {
   box-shadow: 0 0 1rem rgb(0 0 0 / 20%);
}

body[data-touch="yes"] .dropdown-list.dropdown-list-open {
	font-size: 1.1rem;
	max-width: calc(100vw - 1.5rem);
}

body[data-touch="yes"] .dropdown-list:not(.dropdown-list-minimalist).dropdown-list-open {
	min-width: 50%;
}

.dropdown-toggle:after {
	display: inline-block;
	content: "";
	margin-left: 0.5em;
	vertical-align: middle;
}

.h-menu,
.h-back {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background-color: var(--primary);
	color: white;
	border-radius: 50%;
	font-size: 0.66em;
	width: 1.5em;
	height: 1.5em;
	line-height: 1;
	margin-right: .5em;
	transition: background-color 0.5s;
}

@media print {

	.h-menu,
	.h-back {
		display: none;
	}

}

a.h-back {
	text-decoration: none;
}

@media (max-width: 767px) {

	.h-back {
		display: none;
	}

}

.h-menu:hover,
.h-back:hover {
	color: white;
	background-color: var(--primary);
}

.h-menu svg {
	margin-bottom: -0.25rem;
}

h1 .dropdown-toggle:after {
	font-size: 1.25rem;
}

h2 .dropdown-toggle:after {
	font-size: 1.15rem;
}

h3 .dropdown-toggle:after {
	font-size: 1.05rem;
}

h4 .dropdown-toggle:after,
h5 .dropdown-toggle:after,
h6 .dropdown-toggle:after {
	font-size: 1rem;
}

.dropdown-toggle[data-dropdown^="bottom"]:after {
	border-top: 0.4em solid;
	border-right: 0.32em solid transparent;
	border-bottom: 0;
	border-left: 0.32em solid transparent !important;
}

.dropdown-toggle[data-dropdown^="top"]:after {
	border-bottom: 0.4em solid;
	border-right: 0.32em solid transparent;
	border-top: 0;
	border-left: 0.32em solid transparent !important;
}

.dropdown-item {
	display: block;
	cursor: pointer;
	width: 100%;
	padding: 0.625rem 1rem;
	color: white;
	line-height: 1.2;
	background-color: transparent;
	border: 0;
	text-align: left;
	font-weight: normal;
}

body[data-touch="yes"] .dropdown-item {
	padding: 0.75rem 1rem;
}

.dropdown-item.selected,
.dropdown-item:hover {
	color: white;
	text-decoration: none;
	background-color: #fff2;
}

.dropdown-item-status {
	font-size: 1.2rem;
	margin-left: 1.5rem;
	line-height: 1;
}

.dropdown-title {
	font-weight: bold;
	padding: 0.25rem 1rem 0.5rem 1rem;
	white-space: nowrap;
	border-bottom: 1px solid white;
	color: white;
}

.dropdown-list-2 .dropdown-title,
.dropdown-list-2 .dropdown-divider,
.dropdown-list-2 .dropdown-subtitle,
.dropdown-list-2 .dropdown-item-full {
	grid-column: span 2;
}

.dropdown-list-3 .dropdown-title,
.dropdown-list-3 .dropdown-divider,
.dropdown-list-3 .dropdown-subtitle,
.dropdown-list-3 .dropdown-item-full {
	grid-column: span 3;
}

.dropdown-title:not(:first-child) {
	padding-top: 0.5rem;
}

.dropdown-subtitle {
	display: flex;
	align-items: center;
	color: #fff;
	font-weight: bold;
	font-size: .9rem;
	padding: 0.75rem 1rem;
	white-space: nowrap;
	line-height: 1.2;
	letter-spacing: 0.5px;
	text-transform: uppercase;
}

.dropdown-title + .dropdown-subtitle,
.dropdown-title + .dropdown-item {
	margin-top: 0.5rem;
}

.dropdown-divider {
	height: 0;
	margin: 0.5rem 0;
	border-top: 1px solid white;
}

.dropdown-backdrop {
	position: fixed;
	top: -100px;
	left: -100px;
	width: calc(100vw + 200px);
	height: calc(100vh + 200px);
	background-color: rgba(0, 0, 0, 0.5);
	transition: opacity 0.25s;
}

.dropdown-backdrop.fullscreen-closing {
	opacity: 0;
}

/* Tabs */
div.tabs-v {
	display: grid;
	grid-template: "tabs panel" 1fr / max-content 1fr;
	grid-column-gap: 1rem;
}

div.tabs-h .tab-panel:not(.selected),
div.tabs-v .tab-panel:not(.selected) {
	display: none;
}

div.tabs-item-wrapper {
	display: grid;
	grid-template:
		"tabs label" 1fr / 1fr max-content;
}

@media (max-width: 575px) {

	div.tabs-item-wrapper {
		grid-template:
			"label" auto
			"tabs" auto / 1fr;
		grid-row-gap: 1rem;
	}


}

.tabs-item-label {
	text-align: right;
	align-self: center;
	color: var(--muted);
	line-height: 1;
	padding-right: 0.5rem;
	grid-area: label;
}

div.tabs-item {
	grid-area: tabs;
}

@media print {

	div.tabs-item {
		display: none !important;
	}

}

div.tabs-panel {
	grid-area: panel;
}

div.tabs-item + div.tabs-panel.util-block {
	margin-top: -1.5rem;
	border-top-left-radius: 0;
	border-top-right-radius: 0;
}

:not(div.tabs-v) > div.tabs-item {
	display: flex;
	column-gap: 0.5rem;
	align-items: stretch;
	margin-bottom: 1.5rem;
	border-bottom: 1px solid var(--secondary);
   overflow-x: auto;
}

div.tabs-v > div.tabs-item {
	border-right: 1px solid var(--secondary);
	display: grid;
	grid-template-columns: 1fr;
	grid-row-gap: 0.5rem;
}

.tab-item {
	display: flex;
	align-items: center;
	line-height: 1;
	padding: 1rem 1rem;
	border-bottom: 0.25rem solid transparent;
	color: var(--text);
	font-weight: bold;
	cursor: pointer;
	white-space: nowrap;
}

:not(div.tabs-v) > div.tabs-item .tab-item {
	border-top-left-radius: var(--radius);
	border-top-right-radius: var(--radius);
	justify-content: center;
}

div.tabs-v > div.tabs-item .tab-item {
	border-bottom-left-radius: var(--radius);
	border-top-left-radius: var(--radius);
	padding-right: 2rem;
}

label.tab-item input {
	display: none;
}

.tab-item-count {
	margin-left: 0.5rem;
	font-size: 0.9rem;
	background-color: #000B;
	border-radius: calc(var(--radius) / 2);
	padding: 0.2rem 0.4rem;
	color: white;
	line-height: 1;
}

.tab-item-count:empty {
	display: none;
}

a.tab-item {
	color: var(--text);
	text-decoration: none;
}

.tab-item:hover,
.tab-item.selected {
	color: white;
	background-color: var(--secondary);
}

a.tab-item:hover,
a.tab-item.selected {
	color: white;
}

.tab-item:first-child {
	margin-left: 0;
}

.tab-item:last-child {
	margin-right: 0;
}

@media (max-width: 575px) {

	.tab-item {
		padding: 1rem 0.75rem;
	}

}

@media (max-width: 449px) {

	.tab-item {
      padding: 1rem 0.5rem;
	}

	:not(div.tabs-v) .tab-item {
		margin: 0 0.25rem;
	}

}

/* User settings  */

div.util-buttons {
	display: grid;
	grid-gap: 1rem;
	grid-template-columns: 1fr 1fr 1fr;
}

div.util-buttons:not(:last-child) {
	margin-bottom: 2rem;
}

@media (max-width: 575px) {

	div.util-buttons {
		grid-template-columns: 1fr;
	}

}

@media (min-width: 575px) and (max-width: 991px) {

	div.util-buttons {
		grid-template-columns: 1fr 1fr;
	}

}

div.util-buttons > .util-button {
	padding: 1rem;
	border-radius: var(--radius);
	display: grid;
	grid-template-columns: 1fr auto;
	grid-column-gap: 1rem;
	grid-template-rows: 1fr auto;
	color: white;
	transition: color 0.25s, background-color 0.25s, border-color 0.25s, box-shadow 0.25s;
	text-decoration: none;
}
div.util-buttons > .util-button.disabled {
	opacity: 0.3;
}

div.util-buttons > .util-button > svg {
	font-size: 5rem;
	color: #FFF3;
	transition: color 0.5s;
}

div.util-buttons > .util-button:hover > svg {
	color: #FFF8;
}

div.util-buttons > .util-button div.util-button-text {
	word-wrap: break-word;
	line-height: 1.4;
	font-size: 0.9rem;
	color: #FFFA;
	grid-column: span 2;
	grid-column-start: 1;
}

div.util-buttons > .util-button h4 {
	margin-bottom: 0.5rem;
	line-height: 1.3;
}

@media print {

	nav,
	header,
	footer,
	.btn,
	.dropdown-list-open {
		display: none !important;
	}

	.util-print-hide {
		display: none !important;
	}

	.util-print-block {
		display: block !important;
	}

	.util-print-break-after {
		page-break-after: always;
	}

	.util-print-break-inside-avoid {
		page-break-inside: avoid;
	}

}

@font-face {
	font-family: 'Open Sans';
	src: url(/asset/framework/util/fonts/OpenSans-Light.woff) format('woff');
	font-weight: 200;
	font-style: normal;
}

@font-face {
	font-family: 'Open Sans';
	src: url(/asset/framework/util/fonts/OpenSans-Regular.woff) format('woff');
	font-weight: 400;
	font-style: normal;
}

@font-face {
	font-family: 'Open Sans';
	src: url(/asset/framework/util/fonts/OpenSans-Bold.woff) format('woff');
	font-weight: 700;
	font-style: normal;
}

.font-open-sans {
	font-family: 'Open Sans', sans-serif;
}
:root {
	--demo: #722364;
	--soil: #48372f;
	--harvest: #2e71b5;
	--order: #7e1661;
	--todo: slategray;
	--done: teal;
	--muted: #707079;
	--selling: #722583;
	--basket: #b17e2f;
	--background-body: #e4e4e8;
	--background: #ededf1;
	--background-light: #f5f5f7;
	--background-odd: #fafafc;
	--background-even: #ededf1;
	--primary: #373737;
	--secondary: #4a4a70;
	--secondary-dark: #3a3a55;
	--training: #fdf7c9;
	--shop: #006d6b;
	--border: #ddd;
	--dark: #212529;
	--pro: #008874;
	--private: #527a00;
	--production: #446b0e;
}

::selection {
  color: var(--primary);
  background: #e5e5f3;
}

@media (min-width: 1200px) and (min-height: 600px) {

	:root {
		--mainNav: 3.5rem;
		--mainSticky: 0rem;
	}

}

@media (max-width: 1199px), (max-height: 599px) {

	@media (max-width: 767px) {

		:root {
			--farmNav: 5rem;
			--mainNav: 3rem;
			--farmSubNav: 2.75rem;
		}

	}

	@media (min-width: 768px) {

		:root {
			--farmNav: 4rem;
			--mainNav: 3rem;
			--farmSubNav: 2.5rem;
		}

	}

	:root {
		--mainSticky: calc(var(--farmNav) + var(--farmSubNav));
	}

}

:root {
	--nav: calc(var(--mainNav) + var(--farmNav) + var(--farmSubNav));
}

.color-selling {
	color: var(--selling);
}

.color-production {
	color: var(--production);
}

.color-todo {
	color: var(--todo);
}

.color-pro {
	color: var(--pro);
}

.color-private {
	color: var(--private);
}

.bg-harvest {
	background-color: var(--harvest) !important;
}
.bg-demo {
	background-color: var(--demo) !important;
}
.bg-todo {
	background-color: var(--todo) !important;
}
.bg-done {
	background-color: var(--done) !important;
}
.bg-order {
	background-color: var(--order) !important;
}
.bg-selling {
	background-color: var(--selling) !important;
}
.bg-production {
	background-color: var(--production) !important;
}

.bg-pro {
	background-color: var(--pro);
}

.bg-private {
	background-color: var(--private);
}

.bg-shop {
	background-color: var(--shop) !important;
}

html {
	font-size: 13px;
}

@media (min-width: 1600px) and (min-height: 992px) {

	html {
		font-size: 16px;
	}

}

@media (min-width: 1400px) and (max-width: 1599px) and (min-height: 992px) {

	html {
		font-size: 15px;
	}

}

@media (min-width: 1400px) and (max-height: 992px) {

	html {
		font-size: 14px;
	}

}

@media (min-width: 1300px) and (max-width: 1399px) {

	html {
		font-size: 14px;
	}

}

@media (min-width: 1200px) and (max-width: 1299px) {

	html {
		font-size: 13px;
	}

}

@media (max-width: 449px) {

	html {
		font-size: 12px;
	}

}

@media print {

	html {
		font-size: 12px !important;
	}

}


h1 {
	font-weight: lighter;
	font-size: 2.5rem;
}

@media (max-width: 575px) {

   h1 {
      font-size: 2rem;
	}

}

h1 a {
	color: inherit;
	transition: color 0.5s;
}

h1 a:hover {
	text-decoration: none;
	color: var(--primary);
}

h2 {
	font-weight: lighter;
	font-size: 2rem;
}

@media (max-width: 575px) {

	h2 {
		font-size: 1.75rem;
	}

}

h3 {
	font-weight: bold;
	font-size: 1.3rem;
}

h4 {
	font-size: 1.25rem;
}

h5 {
	font-weight: bold;
	font-size: 1rem;
}

body {
	display: flex;
	flex-direction: column;
	background: linear-gradient(90deg, var(--background-body) 0, #e8e8ea 100%);
}

@media print {

	body {
		background: transparent;
	}

}

@media (max-width: 1199px), (max-height: 599px) {

	body {
		min-height: 150vh;
	}

}

@media (min-height: 768px) and (min-width: 768px) {

	body {
		min-height: 100vh;
	}

}

header, main, footer, nav {
	width: 100%;
}
.color-harvest {
	color: var(--harvest) !important;
}
.color-order {
	color: var(--order) !important;
}

body[data-template~="panel"] header,
body[data-template~="panel"] main,
body[data-template~="panel"] footer,
body[data-template~="panel"] nav {
	display: none;
}

/* Header */
body[data-template~="default"] header {
	padding: 1.5rem 0;
}

@media (min-height: 768px) and (min-width: 768px) {

	body[data-template~="farm"] header {
		top: var(--mainNav);
	}

	body > nav {
		position: sticky;
		top: 0;
	}

}


@media (max-width: 1199px), (max-height: 599px) {

	body[data-template~="farm"] header {
		top: 0;
	}

}

body[data-template~="farm"] main > div.container:not(:first-child) {
	margin-top: 0;
}

header h1:only-child {
	margin: 0;
}

body {
	overflow-y: scroll;
}

body > nav {
	z-index: 501;
	font-weight: normal;
	color: white;
	background-color: var(--primary);
	box-shadow: 0 0 1rem #0003;
}

body[data-demo] > nav {
	background-color: var(--demo);
}

body > nav a {
	color: white;
}

body > nav a.nav-logo {
	display: inline-block;
	width: 1.75rem;
	min-width: 1.75rem;
	height: 1.75rem;
	position: relative;
	align-self: center;
	margin-right: 1rem;
}

body > nav a.nav-logo div.logo-wrapper {
	transition: all 0.5s;
	transition-delay: 0s;
}

body > nav a.nav-logo div.logo-wrapper div.logo-top-left-circle,
body > nav a.nav-logo div.logo-wrapper div.logo-bottom-right-circle {
	transition: all 0.5s;
	transition-delay: 0s;
}

body > nav a.nav-logo:hover div.logo-wrapper {
	transition-delay: 0.5s;
	transform: rotate(-360deg);
	letter-spacing: 30px;
	color: transparent;
	opacity: 0;

}

body > nav a.nav-logo:hover div.logo-wrapper div.logo-top-left-circle {
	transition-delay: 0.5s;
	top: -100%;
	left: -100%;
}


body > nav a.nav-logo:hover div.logo-wrapper div.logo-bottom-right-circle {
	transition-delay: 0.5s;
	top: 100%;
	left: 100%;
}

body > nav a.nav-logo div.nav-logo-home {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	top: 0;
	opacity: 0;
	transition: all 0.5s;
	transition-delay: 0s;
	display: flex;
	align-items: center;
	justify-content: center;
}

body > nav a.nav-logo:hover div.nav-logo-home {
	opacity: 1;
	transition-delay: 0.5s;
}

body > nav a.nav-logo svg {
	font-size: 2rem;
}

div.nav-wrapper {
	display: flex;
	justify-content: space-between;
	align-items: stretch;
	height: var(--mainNav);
	min-height: var(--mainNav);
	column-gap: 0.5rem;
}

body > nav ul > li > form > button {
	color: black;
}

body > nav a.nav-news {
	display: flex;
	justify-content: center;
	flex-direction: column;
	margin: 0;
	padding: 0 .5rem;
	background-color: #fff4;
	line-height: 1.3;
}

@media (min-width: 576px) {

	body > nav a.nav-news {
		padding: 0 1rem;
	}

}

body > nav .nav-news-title {
	font-size: 0.9rem;
	letter-spacing: 0.2px;
}

body > nav .nav-news-name {
	color: #fffa;
	font-size: 0.8rem;
	letter-spacing: -0.1px;
	text-align: right;
}

body > nav ul.nav-actions {
	display: flex;
	justify-content: flex-end;
	list-style-type: none;
	margin: 0;
	padding: 0;
}

body > nav ul.nav-actions li {
	display: flex;
	align-items: center;
	padding: 0;
}

@media (max-width: 575px) {

	body > nav ul.nav-actions li.nav-action-optional {
		display: none;
	}

}

body > nav .nav-item {
	display: flex;
	align-items: center;
	height: 100%;
	padding: 0 1rem;
	transition: background-color 0.5s;
}

@media (max-width: 575px) {

	body > nav .nav-item {
		padding: 0 0.5rem;
	}

}

body > nav ul.nav-actions a.nav-item:hover {
	background-color: #ffffff20;
}

body > nav ul.nav-actions li > a.nav-icon {
	font-weight: bold;
}

@media (max-width: 575px) {

	body > nav ul.nav-actions li > a.nav-icon {
		font-size: 0.9rem;
	}

}


@media (min-width: 576px) and (max-width: 767px) {

	body > nav ul.nav-actions li > a.nav-icon {
		font-size: 0.9rem;
	}

}

.nav-deleted {
	background-color: var(--danger);
	line-height: 1.2;
}

.nav-deleted,
.nav-deleted a,
.nav-deleted a:hover {
	font-weight: bold;
}

@media (max-width: 767px) {

	.nav-deleted {
		display: none;
	}

}

body > nav a:active:not(.dropdown-item),
body > nav a:hover:not(.dropdown-item) {
	text-decoration: none;
}

.nav-title {
	display: flex;
	align-items: center;
	line-height: 1.2;
}

body > nav .nav-user {
	line-height: 1.2;
}

body > nav .nav-user > *:not(:first-child) {
	margin-left: .5rem;
}


/* Logo */
div.logo-wrapper {
	position: relative;
}

div.logo-middle-circle {
	position: absolute;
	left: 28%;
	top: 28%;
	background-color: white;
	border-radius: 50%;
	width: 44%;
	height: 44%;
	box-shadow: 0 0 0.5rem rgba(0, 0, 0, 0.3);
}

div.logo-top-left-circle {
	position: absolute;
	left: 0;
	top: 0;
	width: 50%;
	height: 50%;
	border-top-left-radius: 100%;
	background-color: white;
	opacity: 0.25;
}

div.logo-bottom-right-circle {
	position: absolute;
	left: 50%;
	top: 50%;
	width: 50%;
	height: 50%;
	border-bottom-right-radius: 100%;
	background-color: white;
	opacity: 0.25;
}

/* Main */
main {
	flex-grow: 1;
}

main > div.container {
	margin-top: 1.5rem;
}

/* Footer */
footer:empty {
	display: none;
}

footer:not(:empty) {
	padding: 4rem 0 1rem;
}

footer a {
	color: var(--muted);
}

div.footer-content {
	font-size: 0.9rem;
	padding: 2rem 0;
}

div.footer-content-text {
	padding: 1rem 2rem;
	color: var(--secondary);
	text-align: center;
}

div.footer-content-legal {
	padding: 1rem 2rem;
	display: flex;
	column-gap: 3rem;
	justify-content: center;
}

@media (max-width: 575px) {

	div.footer-content-legal {
		padding: 1rem;
		column-gap: 1rem;
	}

}

.text-secondary a {
	color: inherit;
	text-decoration: underline;
}

.util-unit {
	white-space: nowrap;
}

.plant-start {
	font-weight: bold;
	display: inline-block;
	white-space: nowrap;
	font-size: 0.9em;
	margin-left: 0.25em;
	background-color: #8881;
	border-radius: 0.5em;
	line-height: 1;
}

.plant-start-background {
	padding: 0.25em 0.375em;
}

.plant-start-border {
	border: 1px solid #8888;
	padding: 0.25em;
}

div.soil-icon {
	display: inline-block;
	vertical-align: middle;
	background-image: url(/asset/ouvretaferme/sequence/image/soil.jpg);
	background-size: cover;
	border-radius: 50%;
}

div.util-vignette {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 1.5rem;
	align-items: center;
}

div.util-vignette > *:first-child {
	align-self: start;
}

@media (max-width: 575px) {

	div.util-vignette {
		gap: 1rem;
	}

}

div.logout-external {
	position: fixed;
	bottom: 10px;
	right: 10px;
	max-width: 300px;
	z-index: 100000;
	font-size: 0.875rem;
	padding: 1rem;
	border-radius: var(--radius);
	color: white;
	background-color: var(--warning);
}

div.logout-external a {
	color: white;
	text-decoration: underline;
}

code {
	background: rgba(0, 0, 0, 0.05);
	border-radius: var(--radius);
	padding: 1rem;
	display: block;
}


address {
	margin: 0.5rem 0 0.5rem 1rem;
	border-left: 2px solid var(--border);
	padding-left: 1rem;
}

.btn-production,
.btn-outline-production:not(.btn-readonly):hover {
	color: white;
	background-color: var(--production);
	border-color: var(--production);
}

.btn-production:not(.btn-readonly):hover {
	color: white;
	box-shadow: inset 0px 0px 0 100px rgba(0, 0, 0, .1);
}

.btn-outline-production {
	color: var(--production);
	border-color: var(--production);
}


.btn-selling,
.btn-outline-selling:not(.btn-readonly):hover {
	color: white;
	background-color: var(--selling);
	border-color: var(--selling);
}

.btn-selling:not(.btn-readonly):hover {
	color: white;
	box-shadow: inset 0px 0px 0 100px rgba(0, 0, 0, .1);
}

.btn-outline-selling {
	color: var(--selling);
	border-color: var(--selling);
}

.btn-done,
.btn-outline-done:not(.btn-readonly):hover {
	color: white;
	background-color: var(--done);
	border-color: var(--done);
}

.btn-done:not(.btn-readonly):hover {
	color: white;
	box-shadow: inset 0px 0px 0 100px rgba(0, 0, 0, .1);
}

.btn-outline-done {
	color: var(--done);
	border-color: var(--done);
}

.btn-todo,
.btn-outline-todo:not(.btn-readonly):hover {
	color: white;
	background-color: var(--todo);
	border-color: var(--todo);
}

.btn-todo:not(.btn-readonly):hover {
	color: white;
	box-shadow: inset 0px 0px 0 100px rgba(0, 0, 0, .1);
}

.btn-outline-todo {
	color: var(--todo);
	border-color: var(--todo);
}

.btn-harvest {
	background: var(--harvest);
	color: white;
}

.btn-harvest:hover {
	color: white;
	box-shadow: inset 0px 0px 0 100px rgba(0, 0, 0, .1);
}

.btn-outline-private {
	color: var(--private);
	border-color: var(--private);
}

.btn-outline-private:hover {
	background: var(--private);
	color: white;
}

.btn-outline-pro {
	color: var(--pro);
	border-color: var(--pro);
}

.btn-outline-pro:hover {
	background: var(--pro);
	color: white;
}
#header-login a {
	color: white;
}

.login-form,
.signup-form {
	max-width: 500px;
	margin: auto;
}

header .login-form,
header .signup-form {
	margin: auto;
	padding: 0 1rem;
}

.login-teasing {
	max-width: 500px;
	margin: 1rem auto 0 auto;
	text-align: center;
}

.login-form div.row > div {
	display: flex;
	flex-direction: column;
	justify-content: center;
}


.login-submit {
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.login-submit .login-forgotten-password {
	text-align: right;
	font-size: 0.9rem;
}

.login-form .form-control-label {
	padding: 0;
}

#panel-forgotten-password {
	z-index: 1000000;
}

#link-forgotten-password {
	font-size: 0.9rem;
}

/* E-mail verified */
div.user-light {
	margin-top: 3rem;
	display: flex;
	flex-direction: column;
	align-items: center;
}

div.user-light h1 {
	margin-bottom: 1.5rem;
}

div.user-light h4 {
	margin: 0rem 0 3rem;
	color: #666;
}

div.user-light-actions a {
	margin: 0 0.5rem;
}

.user-field-role .btn {
	padding: 0.5rem 1.5rem;
	border: 1px solid var(--border);
	border-radius: 1rem;
	background: white;
}

.user-field-role .btn:not(:last-child) {
	margin-right: 1rem;
}

.user-account-header {
	display: grid;
	grid-template-columns: auto 1fr;
	grid-column-gap: 1rem;
	align-items: center;
}

.user-account-header .media-image-dropdown {
	border-radius: 50%;
}

.user-account-header .media-image-upload.media-image-no .media-image-action {
	top: -0.5rem;
	right: -0.5rem;
	left: 66%;
	bottom: 66%;
	font-size: 1.25rem;
}

.user-account-header .media-image-action a {
	background-color: var(--primary);
}

.user-account-header > h1 {
	margin-bottom: 0;
}
input[type="number"] {
   width: 5rem;
}

input[type="file"] {
	display: none;
}

input[type="range"] {
	-webkit-appearance: none;
	width: 100%;
	height: 0.75rem;
	margin-top: 0.375rem;
	margin-bottom: 0.375rem;
	padding: 0;
	border: 1px solid var(--primary);
	border-radius: 5px;
	background: white;
	outline: none;
	opacity: 0.8;
	transition: opacity .5s;
}

input[type="range"]:hover {
	opacity: 1;
}

input[type="range"]::-webkit-slider-thumb {
	-webkit-appearance: none;
	appearance: none;
	background: var(--primary);
	cursor: pointer;
	width: 1.5rem;
	height: 1.5rem;
	border-radius: 50%;
}

input[type="range"]::-moz-range-thumb {
	background: var(--primary);
	cursor: pointer;
	width: 1.5rem;
	height: 1.5rem;
	border-radius: 50%;
}

input[type="checkbox"] {
	width: 1.1rem;
	height: 1.1rem;
}

.form-warning [type="submit"] {
	box-shadow: 0 0 15px var(--warning);
}

[data-wrapper].form-warning-wrapper > label.form-control-label {
	color: var(--warning) !important;
	font-weight: bold;
}

[data-wrapper].form-warning-wrapper input {
	color: var(--warning);
}

[data-wrapper].form-warning-wrapper [data-wrapper].form-warning-wrapper input {
	color: var(--warning);
}

.form-columns [data-wrapper].form-warning-wrapper > label.form-control-label {
	padding-right: 0.25rem;
	border-right: 2px solid var(--warning);
}

.form-warning-message {
	font-size: 0.875rem;
	color: var(--warning) !important;
	font-weight: normal !important;
	border-radius: var(--radius);
	margin: 0.25rem 0.25rem 0 0;
	line-height: 1.3;
}

.form-warning-field div.input-group label.btn,
.form-warning-field div.btn,
.form-warning-field .input-group label,
.form-warning-field input,
.form-warning-field textarea,
.form-warning-field .form-warning-field-component,
.form-warning-field,
.form-warning-field select {
	border-color: var(--warning) !important;
}
.form-warning-field input[type="radio"] {
	outline: 1px solid var(--warning) !important;
}
.form-warning-field input[type="text"],
.form-warning-field input[type="time"],
.form-warning-field input[type="date"],
.form-warning-field input[type="email"],
.form-warning-field input[type="url"] {
	background: linear-gradient(to right, rgba(194, 120, 10, 0.2) 0, transparent 3rem);
	background-color: white;
}

.form-error-field .input-group-addon {
	color: var(--warning);
}

.form-error [type="submit"] {
	box-shadow: 0 0 15px var(--danger);
}

[data-wrapper].form-error-wrapper > label.form-control-label {
	color: var(--danger) !important;
	font-weight: bold;
}

[data-wrapper].form-error-wrapper input {
	color: var(--danger);
}

[data-wrapper].form-warning-wrapper [data-wrapper]  input,
[data-wrapper].form-error-wrapper [data-wrapper]  input {
	color: inherit;
}

[data-wrapper].form-error-wrapper [data-wrapper].form-error-wrapper input {
	color: var(--danger);
}

.form-columns [data-wrapper].form-error-wrapper > label.form-control-label {
	padding-right: 0.25rem;
	border-right: 2px solid var(--danger);
}

.form-error-message {
	font-size: 0.875rem;
	color: var(--danger) !important;
	font-weight: normal !important;
	border-radius: var(--radius);
	margin: 0.25rem 0.25rem 0 0;
	line-height: 1.3;
}

.form-error-field div.input-group label.btn,
.form-error-field div.btn,
.form-error-field .input-group label,
.form-error-field input,
.form-error-field textarea,
.form-error-field .form-error-field-component,
.form-error-field,
.form-error-field select {
	border-color: var(--danger) !important;
}
.form-error-field input[type="radio"] {
	outline: 1px solid var(--danger) !important;
}
.form-error-field input[type="text"],
.form-error-field input[type="time"],
.form-error-field input[type="date"],
.form-error-field input[type="email"],
.form-error-field input[type="url"] {
	background: linear-gradient(to right, rgba(217, 83, 111, 0.2) 0, transparent 3rem);
	background-color: white;
}
.form-error-field .input-group-addon {
	color: rgb(217, 83, 111);
}

.form-character-count-wrapper {
	display: flex;
}

.form-character-count-wrapper.for-textarea {
	flex-direction: column;
}

.form-character-count {
	color: var(--muted);
	display: none;
	align-items: center;
	font-size: 0.9rem;
}

.form-character-count-wrapper.for-input input {
	padding-right: 3rem;
}

.for-input .form-character-count {
	margin-left: -2.5rem;
	width: 2.5rem;
	justify-content: center;
	border-left: 1px solid;
}

.for-textarea .form-character-count {
	justify-content: flex-end;
	padding-top: 0.25rem;
}

.form-character-count.error,
.form-character-count.error.focus {
	border-color: var(--danger);
}

.form-character-count.error {
	color: var(--danger);
}

.form-info {
	font-size: .9rem;
	font-weight: normal;
	color: var(--muted);
	margin-top: .25rem;
}

.form-control + .form-info,
.form-info-ancestor + .form-info,
.editor + .form-info,
.editor + script + .form-info,
.input-group + .form-info {
	margin-top: 0;
	padding: 0.25rem 0.5rem;
	border-left: 2px solid var(--border);
	margin-left: 1rem;
}

.form-info svg {
	margin: 0 0.5rem;
}

.form-info > :last-child {
	margin-bottom: 0;
}

input.form-color {
	max-width: 6rem;
}

div.form-range {
	display: grid;
	grid-template-columns: 1fr auto;
	grid-column-gap: .5rem;
	align-items: center;
	width: 100%;
}

div.form-postcode-city {
	display: grid;
	grid-template-columns: 10rem 1fr;
	column-gap: 1rem;
}

.form-dropdown-toggle:hover {
	text-decoration: none;
}

.form-dropdown-title {
	display: flex;
	column-gap: 0.5rem;
	justify-content: space-between;
	align-items: center;
}

.form-dropdown-list {
	background: white !important;
	border: 1px solid #0002;
	border-radius: var(--radius);
}

.form-dropdown-list input {
	display: none;
}

.form-dropdown-list .dropdown-item {
	color: var(--text);
}

.form-dropdown-list .dropdown-item.selected {
	background-color: var(--background) !important;
}

.form-dropdown-list .dropdown-item:hover {
	background-color: var(--secondary) !important;
	color: white;
	cursor: pointer;
}

.form-dropdown-list .dropdown-item.disabled {
	pointer-events: none;
	opacity: 0.5;
}

.form-dropdown-placeholder {
	color: var(--border);
}

div.form-asterisk {
	display: inline-block;
	font-size: 0.8em;
	transform: translate(0, -0.5em);
	margin-left: 0.25rem;
}

div.form-asterisk svg {
	color: var(--secondary);
}

div.form-asterisk-info {
	margin-bottom: 1rem;
	font-size: 0.9rem;
	color: var(--muted);
	width: max-content;
	background-color: #0000000a;
	border-radius: var(--radius);
	padding: 0.25rem 0.75rem;
}

/* Form group */
div.form-group {
	padding: 0.5rem 0;
}

.form-columns div.form-group:not(.form-group-nested) {
	display: grid;
	grid-column-gap: 1rem;
}

div.form-group-highlight {
	background-color: var(--background);
	padding: 1rem;
	border-radius: var(--radius);
}

div.form-group-highlight.bg-primary,
div.form-group-highlight.bg-secondary {
	color: white;
}

div.form-group-highlight .form-control-label {
	font-weight: bold;
}

.form-columns div.form-group.form-group-highlight {
	align-items: center;
}

.form-columns-25 div.form-group {
	grid-template-columns: 1fr 3fr;
}

.form-columns-33 div.form-group {
	grid-template-columns: 1fr 2fr;
}

.form-columns-40 div.form-group {
	grid-template-columns: 2fr 3fr;
}

.form-columns-50 div.form-group {
	grid-template-columns: 1fr 1fr;
}

div.form-group.form-group-nested > .form-control-label {
	margin-bottom: 0.125rem;
	color: var(--muted);
	font-size: 0.9rem;
}

@media (max-width: 991px) {

	.form-columns-md div.form-group:not(.form-group-nested) {
		grid-template-columns: 1fr !important;
	}

	.form-columns-md div.form-group:not(.form-group-nested) > .form-control-label {
		margin: 0.5rem 0;
		font-weight: bold;
	}

}

@media (max-width: 767px) {

	.form-columns-sm div.form-group:not(.form-group-nested) {
		grid-template-columns: 1fr !important;
	}

	.form-columns-sm div.form-group:not(.form-group-nested) > .form-control-label {
		margin: 0.5rem 0;
		font-weight: bold;
	}

}

@media (max-width: 575px) {

	.form-columns-xs div.form-group:not(.form-group-nested) {
		grid-template-columns: 1fr !important;
	}

	.form-columns-xs div.form-group:not(.form-group-nested) > .form-control-label {
		margin: 0.5rem 0;
		font-weight: bold;
	}

}

.form-buttons {
	display: grid;
	grid-template-columns: 1fr auto;
	grid-column-gap: .5rem;
	align-items: center;
}

.field-followup {
	margin-top: 0.25rem;
	text-align: right;
}

/* Radio group */
.field-radio-group {
	display: grid;
	border: 1px solid #0002;
	border-radius: var(--radius);
	background-color: white;
	line-height: 1.4;
	padding: 0.5rem;
}

.field-radio-group-2 {
	grid-template-columns: repeat(2, 1fr);
}

.field-radio-group-3 {
	grid-template-columns: repeat(3, 1fr);
}

.field-radio-group-4 {
	grid-template-columns: repeat(4, 1fr);
}

@media (max-width: 575px) {

	.field-radio-group-3,
	.field-radio-group-4 {
		grid-template-columns: repeat(2, 1fr);
	}

}

.field-radio-group > label {
	padding: 0.5rem;
	cursor: pointer;
	transition: background-color 0.5s;
}

.field-radio-group.field-radio-group-1 > label:not(:last-child) {
	border-bottom: 1px dashed var(--border);
}

.field-radio-group > label:hover {
	background-color: #ccc2;
}

.field-radio-group > label {
	display: grid;
	grid-template-columns: auto 1fr;
	grid-column-gap: 0.5rem;
	align-items: center;
}

.field-radio-group > label > input[type="radio"]:checked:not(:disabled) + span {
	font-weight: bold;
}

.field-radio-group > label > input:disabled,
.field-radio-group > label > input:disabled + span {
	opacity: 0.5;
}

.field-radio-group-action {
	padding: 0.25rem 0.5rem;
	font-size: 0.9rem;
	text-align: right;
}

.field-radio-select {
	color: var(--primary);
}

.field-radio-separator {
	color: var(--muted);
	font-style: italic;
}

/* Switch */
.field-switch {
	border-radius: var(--radius);
	transition: all 0.5s;
	display: inline-block;
	font-size: 0.9rem;
}

.field-switch.field-switch-sm {
	font-size: 0.8rem;
}

.field-switch:not(.disabled) {
	height: 1.8rem;
	width: 3.6rem;
	min-width: max-content;
	border: 1px solid white;
	position: relative;
	cursor: pointer;
	overflow: hidden;
}

.field-switch.field-switch-sm:not(.disabled) {
	height: 1.5rem;
	width: 2.4rem;
}

.field-switch.disabled {
	pointer-events: none;
}

.field-switch:hover {
	box-shadow: 0 0 0.5rem var(--border);
	text-decoration: none !important;
}

.field-switch input {
	display: none;
}

.field-switch-on:not(.disabled) {
	background-color: var(--success);
}

.field-switch-off:not(.disabled) {
	background-color: var(--muted);
}

.field-switch:not(.disabled) .field-switch-text {
	padding: 0 0.5rem;
}

.field-switch-on:not(.disabled) .field-switch-text {
	margin-right: 1.3rem;
}

.field-switch-on.field-switch-sm:not(.disabled) .field-switch-text {
	margin-right: 0.9rem;
}

.field-switch-off:not(.disabled) .field-switch-text {
	margin-left: 1.3rem;
}

.field-switch-off.field-switch-sm:not(.disabled) .field-switch-text {
	margin-left: 0.9rem;
}

.field-switch.disabled .field-switch-text {
	margin-left: 1.3rem;
}

.field-switch-off:not(.disabled) .field-switch-text {
	transform: translate(0, calc(-1.8rem + 2px));
}

.field-switch-off.field-switch-sm:not(.disabled) .field-switch-text {
	transform: translate(0, calc(-1.5rem + 2px));
}

.field-switch:not(.disabled) .field-switch-text > div {
	height: calc(1.8rem - 2px);
	display: flex;
	align-items: center;
	line-height: 1;
	color: white;
}

.field-switch.field-switch-sm:not(.disabled) .field-switch-text > div {
	height: calc(1.5rem - 2px);
}

.field-switch-on.disabled .field-switch-text > div {
	color: var(--success);
}

.field-switch-off.disabled .field-switch-text > div {
	color: var(--muted);
}

.field-switch-text > div:last-child {
	padding-right: 0.3rem;
}

.field-switch-circle {
	height: calc(1.2rem - 2px);
	width: calc(1.2rem - 2px);
	border-radius: 50%;
	background-color: white;
	position: absolute;
	transition: left 0.25s;
	margin: 0.3rem 0;
}

.field-switch-sm .field-switch-circle {
	height: calc(0.9rem - 2px);
	width: calc(0.9rem - 2px);
}

.field-switch-on.disabled .field-switch-circle {
	background-color: var(--success);
}

.field-switch-off.disabled .field-switch-circle {
	background-color: var(--muted);
}

.field-switch-on:not(.disabled) .field-switch-circle {
	left: calc(100% - 1.3rem + 2px - 0.3rem);
}

.field-switch-on.field-switch-sm:not(.disabled) .field-switch-circle {
	left: calc(100% - 0.8rem + 2px - 0.3rem);
}

.field-switch-off:not(.disabled) .field-switch-circle {
	left: 0.4rem;
}

/* Weeks */
div.input-group > .input-group-addon.field-week-preview {
	border-left: 0;
	background-color: white;
	text-align: right;
	min-width: 75px;
	font-size: 0.9rem;
	user-select: none;
}

div.input-group > .input-group-addon.field-week-preview:empty {
	display: none;
}

div.input-group > input:disabled + .input-group-addon.field-week-preview {
	color: var(--muted);
	background-color: var(--background-light);
}

.field-week-selector {
	width: calc(100vw - 2rem);
	max-width: 300px;
	background: linear-gradient(to bottom, var(--background) 0%, #fff 50%, #fff 100%);
	border-radius: var(--radius);
	padding: 1rem;
	user-select: none;
}

.field-week-selector-title h4 {
	text-align: center;
	margin-bottom: 0;
}

.field-week-selector-year {
	display: flex;
	justify-content: space-around;
	align-items: center;
	text-align: center;
	margin-bottom: 1rem;
}

.field-week-selector-year a.field-week-selector-navigation {
	font-size: 1.2rem;
	width: 2rem;
	height: 2rem;
	border-radius: 50%;
	line-height: 1;
	display: flex;
	justify-content: center;
	align-items: center;
	text-decoration: none;
	transition: font-size 0.25s;
}

.field-week-selector-year a.field-week-selector-navigation:hover {
	font-size: 1.7rem;
}

.field-week-selector-year h4 {
	text-align: center;
	font-weight: bold;
	margin: 0;
}

.field-week-selector-weeks {
	display: grid;
	grid-template-columns: auto 1fr;
	grid-column-gap: 0.25rem;
	grid-row-gap: 0.25rem;
	align-items: center;
	overflow: hidden;
}

.field-week-selector-ticks {
	display: grid;
	grid-template-columns: repeat(38, 1fr);
	position: relative;
	text-align: center;
}

.field-week-selector-ticks > .field-week-selector-label {
	line-height: 1;
	padding-bottom: 1rem;
	font-size: 0.9rem;
}

.field-week-selector-ticks > .field-week-selector-tick {
	justify-content: center;
	border-right: 1px solid #0002;
	position: absolute;
	top: 1.5rem;
	height: 1000px;
}

.field-week-selector-month {
	font-weight: bold;
	line-height: 1.2;
	text-transform: capitalize;
	text-align: center;
	border-radius: var(--radius);
}

a.field-week-selector-month {
	background-color: rgba(0, 0, 0, 0.05);
	color: var(--text);
	text-decoration: none;
	padding: 0.5rem 0.75rem;
}

a.field-week-selector-month:hover {
	background-color: var(--primary);
	color: white;
}

.field-week-selector-bubbles {
	display: grid;
	grid-template-columns: repeat(38, 1fr);
	position: relative;
}

.field-week-selector-bubble {
	text-align: center;
	margin: 0 1px;
}

.field-week-selector-bubble.btn.btn-sm {
	padding-left: 0;
	padding-right: 0;
}

.field-week-selector-bubble-current {
	background-color: white;
	font-weight: bold;
}

/* Month */
.field-month-native {
	display: block;
}

.field-month-fallback {
	display: flex;
}

/* Color field */
.field-color {
	display: inline-grid;
	grid-template-columns: auto auto;
	grid-column-gap: 1rem;
	align-items: center;
}
.field-color input[type="color"] {
	width: 5rem;
	height: 3rem;
}
.field-color label {
	color: var(--muted);
	transition: color 0.5s;
}
.field-color label:hover {
	color: inherit;
}

/* Backend */
#form-search {
}

#form-search > div:first-of-type {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem 0.75rem;
	margin-bottom: 0.5rem;
}

#form-search > div:first-of-type > select,
#form-search > div:first-of-type > input	,
#form-search > div:first-of-type > .input-group {
	width: auto;
}

#form-search > div:first-of-type > span {
	white-space: nowrap;
}

#form-search > div:last-of-type {
	display: flex;
	column-gap: 0.5rem;
}

#form-search > div:last-child > .form-search-end {
	flex: 1;
	display: flex;
	justify-content: flex-end;
	flex-wrap: nowrap;
	text-align: right;
	font-weight: lighter;
	line-height: 1.2;
	margin-right: 0;
}

/* Autocomplete features */
body.autocomplete-fullscreen-open {
	overflow: hidden;
	width: 100vw;
}

body.autocomplete-fullscreen-open[data-touch="no"] {
	padding-right: 15px;
}


.autocomplete-placeholder {
	display: none;
}

body[data-touch="yes"] .autocomplete-wrapper {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: white;
}

body[data-touch="no"] .autocomplete-dropdown {
	position: absolute;
}

body[data-touch="no"] .autocomplete-dropdown:empty {
	display: none;
}

ul.autocomplete-list {
	position: absolute;
	overflow-y: auto;
	list-style: none;
	padding: 0;
	margin: 0;
	max-height: 300px;
	background-color: black;
}


body[data-touch="yes"] ul.autocomplete-list {
	max-height: 80vh;
	box-shadow: 0 0 20px rgba(0, 0, 0, 0.33);
	border-bottom-left-radius: 0.25rem;
	border-bottom-right-radius: 0.25rem;
}

ul.autocomplete-list li {
	padding: 0.375rem 0.75rem;
	text-decoration: none;
	cursor: pointer;
	color: white;
	display: flex;
	align-items: center;
	line-height: 1.2;
}

ul.autocomplete-list li:not(:last-child) {
	border-bottom: 1px solid #333;
}

body[data-touch="yes"] ul.autocomplete-list li:last-child {
	padding-bottom: 60vh;
}

ul.autocomplete-list li a {
	color: white;
}

ul.autocomplete-list li.autocomplete-not-selectable {
	background-color: #444;
	cursor: auto;
}
ul.autocomplete-list li:not(.autocomplete-not-selectable).selected,
ul.autocomplete-list li:not(.autocomplete-not-selectable):hover {
	background-color: #555;
}

ul.autocomplete-list li.autocomplete-link {
	background-color: #444;
	cursor: pointer;
}

ul.autocomplete-list li.autocomplete-link svg {
	font-size: 1.5rem;
	margin: 0.5rem;
}

ul.autocomplete-list li > *:not(:first-child) {
	margin-left: 0.5rem;
}

ul.autocomplete-list li.autocomplete-list-empty {
	padding-top: 1rem;
	padding-bottom: 1rem;
	font-style: italic;
	color: #bbb !important;
}

ul.autocomplete-list .color-muted {
	color: #bbb !important;
}

.autocomplete-dropdown div.autocomplete-place > div:first-child {
	margin-bottom: 0.25rem;
}

.autocomplete-dropdown div.autocomplete-place > div:last-child {
	font-size: 0.85rem;
	color: #ddd;
}

/* Form field */
body[data-touch="yes"] input.autocomplete-open {
	font-size: 1.2rem;
	padding-top: 0.5rem;
	padding-bottom: 0.5rem;
	width: 80vw;
	margin: 2rem auto 0;
}

a.autocomplete-empty {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 2.5rem;
	background-color: rgba(0, 0, 0, 0.5);
	color: white;
}

input[data-autocomplete-items] {
	border-right: 0;
}

input[data-autocomplete-items]:placeholder-shown + a.autocomplete-empty:not(:focus) {
	background-color: white;
	border-top: 1px solid #0002;
	border-right: 1px solid #0002;
	border-bottom: 1px solid #0002;
	pointer-events: none;
}

/* Results */
.autocomplete-items:empty {
	display: none;
}

.autocomplete-items-multiple:not(:empty) {
	display: flex;
	flex-wrap: wrap;
	margin: 0.5rem -0.5rem;
}

.autocomplete-items-multiple .autocomplete-item {
	display: flex;
	align-items: center;
	margin: 0.5rem;
	padding: 0.5rem 0.75rem;
	border-radius: var(--radius);
	background-color: #eee;
	font-weight: bold;

}

.autocomplete-items-multiple .autocomplete-item > *:not(:last-child) {
	margin-right: 0.5rem;
}

