@font-face {
	font-family: 'Lora';
	font-style: normal;
	font-weight: 400 700;
	font-display: swap;
	src: url("../font/Lora-V.ttf");
}

:root {
	box-sizing: border-box;

	--font-ui: "Lora", Rockwell, 'Rockwell Nova', 'Roboto Slab', 'DejaVu Serif', 'Sitka Small', serif;
	--font-ness: Inter, Roboto, 'Helvetica Neue', 'Arial Nova', 'Nimbus Sans', Arial, sans-serif;
	--font-code: ui-monospace, 'Cascadia Code', 'Source Code Pro', Menlo, Consolas, 'DejaVu Sans Mono', monospace;
	--font-brand: Superclarendon, 'Bookman Old Style', 'URW Bookman', 'URW Bookman L', 'Georgia Pro', Georgia, serif;
	--font-handwritten: 'Segoe Print', 'Bradley Hand', Chilanka, TSCu_Comic, casual, cursive;
	--font-industrial: Bahnschrift, 'DIN Alternate', 'Franklin Gothic Medium', 'Nimbus Sans Narrow', sans-serif-condensed, sans-serif; 
	--font-gothic: 'Iowan Old Style', 'Palatino Linotype', 'URW Palladio L', P052, serif;

	--body-bg: #fffcf7;
	--body-text: var(--elevation-1-inverse); /*hsl(29, 100%, 14%);*/
	--body-text-at-half: hsla(29, 100%, 14%, 0.5);
	--accent-color: #00556e;
	--brand-color: #f49519;


	/** Elements "elevated" above base body */
	--elevation-03: hsl(36, 12%, 98%);
	--elevation-03-inverse: hsl(36, 12%, 2%);
	--elevation-05: hsl(36, 12%, 95%);
	--elevation-05-inverse: hsl(36, 12%, 5%);
	--elevation-1: hsl(36, 12%, 92%);
	--elevation-1-inverse: hsl(36, 12%, 8%);
	--elevation-15: hsl(36, 12%, 85%);
	--elevation-15-inverse: hsl(0, 0%, 0%);
	--elevation-2: hsl(36, 12%, 80%);
	--elevation-2-inverse: hsl(0, 0%, 0%);

	/** Topbanner */
	--topbanner-notice-background: rgb(0, 85, 110);
	--topbanner-notice-color: white;

	--topbanner-error-background: rgb(127, 0, 0);
	--topbanner-error-color: white;

	--topbanner-caution-background: rgb(255, 165, 31);
	--topbanner-caution-color: rgb(0, 0, 0);
	--topbanner-warning-background: var(--topbanner-caution-background);
	--topbanner-warning-color: var(--topbanner-caution-color);

	--topbanner-success-background: rgb(0, 119, 60);
	--topbanner-success-color: white;

	/** Navbar */
	--navbar-border-top: var(--accent-color);
	--navbar-background: #1c1c1c;
	--navbar-link-color: var(--brand-color);

	--searchbar-background: #3e3e3e;
	--searchbar-textcolor: #fff;

	--footer-background: #1c1c1c;
	--footer-textcolor: #fff;
}

/* #region Base elements */

* {
	box-sizing: border-box;
	margin: 0;
	overflow-wrap: break-word;
}

html,
body,
#mainWrapper {
	margin: 0;
	padding: 0;
	min-height: 100vh;
}

html,
body {
	line-height: 1.5;
	font-family: var(--font-ui);
	font-size: inherit;
	/* 1rem */
	color: var(--body-text);
	background-color: var(--body-bg);
}

h1,
h2,
h3,
h4,
h5,
h6 {
	line-height: 1.3;
}

#mainWrapper {
	display: flex;
	flex-flow: column nowrap;
	align-items: stretch;
}

img,
picture,
video,
canvas,
svg {
	display: block;
	max-width: 100%;
}

input,
button,
textarea,
select {
	font: inherit;
	text-align: inherit;
}

:root input[type="hidden"] {
	appearance: none;
	display: none !important;
	padding: unset;
	border: 0;
	cursor: auto;
	-moz-user-focus: ignore;
}

.centerColumn {
	flex-grow: 1;
	padding-bottom: 1rem;
	height: 100%;
	position: relative;
}

.visuallyHidden {
	display: inline-block;
	position: absolute;
	overflow: hidden;
	clip: rect(0 0 0 0);
	height: 1px;
	width: 1px;
	margin: -1px;
	padding: 0;
	border: 0;
}

svg.qsicon {
	fill: currentColor;
}

/* #endregion Base elements */

/* #region .qsicon.{*} */
.qsicon.sort-ascending {
	transform: scaleY(-1);
}

/* #endregion .qsicon.{*} */

/* #region .buttonsRow */

.buttonsRow {
	width: 100%;
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	justify-content: space-between;
	padding: 0;
}

.buttonsRow li {
	display: block;
}

/* #endregion .buttonsRow */

/* #region .integratedInput */

.integratedInput {
	display: flex;
	flex-flow: row nowrap;
	gap: 0.5rem;
	width: 100%;
}

.integratedInput input {
	flex-grow: 1;
	appearance: none;
	color: black;
	border: solid 2px #929292;
	border-radius: 12px;
	padding: 0.5rem 0.9rem;
	width: 100%;
	background-color: white;
	appearance: none;

	transition: border-color 150ms;
}

.integratedInput input:disabled {
	border: solid 2px #eaeaea;
	cursor: not-allowed;
	color: #3b3b3b;
}

.integratedInput button {
	cursor: pointer;
	appearance: none;
	color: black;
	font-size: 1.1rem;
	font-weight: 700;
	border: solid 2px #eaeaea;
	border-radius: 12px;
	padding: 0.5rem 1.3rem;
	background-color: white;
	appearance: none;

	transition: border-color 150ms;
}

.add .integratedInput button {
	border-color: #268326;
	background-color: #f1fff2;
	color: #005200;
}

.remove .integratedInput button {
	border-color: #630000;
	background-color: #fff6f6;
	color: #660000;
}

/* #endregion .integratedInput */

/* #region hr.minor */

hr.minor {
	color: currentColor;
	opacity: 0.3;
}

/* #endregion hr.minor */

/* #region select[multiple] */

select[multiple] {
	width: 100%;
	border-radius: 0.2rem;
	border: solid 1px var(--elevation-1);
	padding: 0;
	height: 6rem;
}
select[multiple] option {
	padding: 0.25rem 0.5rem;
}
select[multiple] option:checked {
	background-color: var(--body-text);
	background-image: linear-gradient(var(--body-text), var(--body-text));
	color: var(--body-bg);
}

/* #endregion select[multiple] */

/* #region .expandingFieldset */

input.expandingFieldset {
	border: 0;
	clip: rect(0 0 0 0);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	left: auto;
}

label.expandingFieldset {
	display: flex;
	align-items: center;
	font-weight: 600;

	padding: 0.2rem 0;
	border-top: solid 1px var(--elevation-1);
	border-left: none;
	border-right: none;

	text-decoration: underline transparent;
	transition: text-decoration-color 150ms;

	cursor: pointer;
	user-select: none;
}

label.expandingFieldset svg {
	width: 1.5rem;
	height: 1.5rem;

	transition: transform 150ms;
}

fieldset.expandingFieldset {
	display: none;
	flex-direction: column;
	gap: 0.5rem;
	align-items: stretch;

	padding: 0.5rem 0;
	margin: 0;

	padding-top: 0.2rem;

	border: none;
}

fieldset.expandingFieldset.gridChildren {
	flex-flow: row wrap;
	align-items: stretch;
}
fieldset.expandingFieldset.gridChildren label {
	display: flex;
	flex-flow: column nowrap;
	align-items: stretch;
	width: 40%;
	min-width: 13ch;
	flex-grow: 1;

}

/* Open */

input.expandingFieldset:checked + label.expandingFieldset svg {
	transform: rotate(90deg);
}

input.expandingFieldset:checked + label.expandingFieldset + fieldset.expandingFieldset {
	display: flex;
}
/* Active */
input.expandingFieldset:focus + label.expandingFieldset {
	text-decoration-color: var(--body-text);
}

/* #endregion .expandingFieldset */


.bannerIcon {
	display: inline-block;
	margin-right: 1rem;
	height: 1.5em;
	width: 1.5em;
	vertical-align: bottom;
	fill: currentColor;
}
