body {
	font-family: Verdana, Geneva, Tahoma, sans-serif;
	color: var(--text-color);
	margin: 0;
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	background: linear-gradient(90deg, var(--bg-accent) 0%, var(--bg-color) 10%, var(--bg-color) 90%, var(--bg-accent) 100%);
}

main {
	margin-left: 15%;
	margin-right: 15%;
	margin-bottom: auto;
	height: 100%;
	width: 70%;
}

nav {
	display: flex;
	background: var(--accent-1);
	padding: 5px 0px;
	padding-left: 15%;
	padding-right: 15%;
	align-items: center;
	font-size: 20px;
}

nav>a,
nav>div {
	margin-right: 15px;
}

nav a,
nav div {
	color: var(--text-color);
}

nav>:last-child {
	margin-left: auto;
}

nav a:visited {
	color: var(--text-color);
}

a {
	color: var(--link);
}

a:visited {
	color: var(--link-visited);
}

nav>a:hover {
	opacity: 70%;
	transition: 0.3s;
}

nav>div {
	display: inline-block;
}

nav>div>ul {
	display: none;
	position: absolute;
	background-color: var(--accent-1);
	box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
	z-index: 1;
	margin: 0;
	list-style-type: none;
	padding: 0;
	min-width: 64px;
}

nav>div:hover>ul {
	display: block;
}

nav>div>ul a {
	padding: 6px 2px;
	text-decoration: none;
	display: block;
	text-align: left;
}

nav>div>ul a:hover {
	backdrop-filter: brightness(80%);
}

.sub-nav {
	display: flex;
	padding: 5px 0px;
	align-items: center;
}

.sub-nav * {
	margin-right: 20px;
}

footer {
	display: flex;
	text-align: center;
	background-color: var(--accent-1);
	padding: 10px 5px
}

footer div {
	flex: 1;
	margin: auto auto;
}

footer a,
footer a:visited {
	color: var(--accent-2);
	text-decoration: underline;
}

table,
td,
th {
	border: thin solid var(--element-color);
	border-collapse: collapse;
}

a {
	text-decoration: none;
}

thead {
	background-color: var(--accent-2);
}

tbody>tr>td {
	overflow-wrap: anywhere;
}

tbody>tr.link {
	cursor: pointer;
}

tbody>tr.link:hover {
	filter: brightness(90%);
}

tbody>tr:nth-child(even),
.rows>*:nth-child(even) {
	background: var(--tbl-row-even);
}

tbody>tr:nth-child(odd),
.rows>*:nth-child(odd) {
	background: var(--tbl-row-odd);

}

table button[data-id] {
	background-color: var(--accent-2);
	border: none;
	border-radius: 3px;
	color: var(--text-color);
}

table button[data-id]:hover {
	filter: brightness(120%);
	cursor: pointer;
}

details {
	margin: 2px 0px;
}

summary {
	width: fit-content;
	cursor: pointer;
}

label {
	margin-right: 13px;
}

input,
textarea,
select {
	border: none;
	margin: 2px;
	padding: 3px;
	border-radius: 3px;
	background-color: var(--element-color);
	color: var(--text-color);
}

input::after {
	display: block;
}

input[type=range] {
	vertical-align: middle;
}

input[type=range]+span {
	margin-left: 5px;
}

input[type=file]+ul {
	background-color: var(--tbl-row-even);
	list-style: none;
	padding-left: 0;
}

input[type=file]+ul>li {
	padding: 3px;
}

input[type=file]+ul>li:nth-child(odd) {
	background-color: var(--tbl-row-odd);
}

input:disabled,
input[disabled] {
	background: repeating-linear-gradient(45deg, var(--element-color) 1px, var(--element-color-alt) 5px) !important;
	cursor: not-allowed;
}

label.required {
	font-weight: bold;
}

label.required:before {
	content: "*";
	color: red;
}

a.button,
button {
	background-color: var(--accent-2);
	border: none;
	border-radius: 6px;
	padding: 5px;
	border-bottom: var(--accent-3) solid 3px;
	color: var(--text-color-invert);
	cursor: pointer;
	transition: linear 0.2s;
}

a.button:active,
button:active:not(:disabled) {
	border: unset;
	box-shadow: 0 0 0 !important;
	margin-bottom: 3px;
}

button[disabled] {
	filter: grayscale();
	cursor: not-allowed;
}

button[type=submit] {
	background-color: var(--color-good);
}

fieldset {
	position: relative;
}

legend,
.legend-2 {
	padding: 3px 10px;
	margin-top: 5px;
	border: solid thin;
	border-radius: 10px;
}

fieldset>legend.legend-2 {
	position: absolute;
	top: -32px;
	right: 10px;
	background-color: var(--bg-color);
}

.legend-2>select {
	max-width: 250px;
	padding: 0;
	margin: 0;
	background: unset;
}

.pagination>a {
	margin: 0px 2px;
	padding: 0px 2px;
}

.pagination>a:link,
.pagination>a:active,
.pagination>a:visited,
.pagination>a:hover {
	color: inherit;
}

.pagination>#p {
	width: 50px;
}

.multi-select {
	user-select: none;
	border: thin solid #777;
}

.multi-select>div.options,
.search-element>div.options {
	background: var(--bg-color);
	border: solid thin #777;
	display: none;
	flex-direction: column;
	position: absolute;
	max-height: 250px;
	overflow-y: scroll;
	z-index: 1;
}

.multi-select>div.options>span:hover,
.search-element>div.options>span:hover,
.dropdown-hover {
	background-color: var(--element-color);
	cursor: pointer;
}

.search-element {
	display: inline-block;
}

.search-element>input {
	display: block;
}

.search-element>input {
	background-image: url('/res/img/icon-dropdown.svg');
	background-repeat: no-repeat;
	background-size: 10px;
	background-position: 98%;
}

.search-element>div.selected {
	display: flex;
	flex-wrap: wrap;
	padding: 3px;
	border: thin solid var(--element-color);
	border-bottom-left-radius: 5px;
	border-bottom-right-radius: 5px;
	display: flex;
	min-height: 0px;
	max-height: 50px;
	overflow-y: scroll;
}

.search-element>div.selected:empty {
	display: none;
}

summary.filters {
	user-select: none;
}

summary.filters:before {
	content: "\25b8";
	font-size: larger;
}

summary.filters[open]:before {
	content: "\25be";
	font-size: larger;
}

div.filters[open] {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	gap: 5px;
}

div.filters {
	display: none;
}

div.filters>.search-element>input {
	width: 100%;
}

.table-search {
	width: 100%;
	margin: auto;
}

.table-search td,
.table-search th {
	padding: 3px;
}

.table-search th>i {
	cursor: pointer;
}

.collapsible {
	overflow: hidden;
}

.pill {
	display: flex;
	background: var(--accent-1);
	padding: 3px;
	padding-right: 0px;
	border-radius: 7px;
	margin: 1px;
	width: fit-content;
}

.pill[disabled] {
	background-color: var(--element-color-alt) !important;
}

.pill>button {
	border: none;
	background: none;
	float: right;
	padding: 0;
	margin: 0px 4px;
	font-size: large;
	font-weight: bold;
	color: var(--text-color);
}

.pill>button:hover {
	cursor: pointer;
}

.btn-good {
	background: var(--color-good);
	color: var(--text-color);
}

.btn-ok {
	background: var(--color-ok);
	color: var(--text-color);
}

.btn-warn {
	background: var(--color-warn);
	color: var(--text-color);
}

.btn-bad {
	background: var(--color-bad);
	color: var(--text-color-invert);
}

.callout {
	background: var(--element-color);
	position: absolute;
	padding: 10px;
	border-radius: 10px;
	box-shadow: 5px 5px 5px #333;
}

.callout::after {
	content: "";
	border: 20px solid transparent;
	position: absolute;
}

.callout.down::after {
	border-top-color: var(--element-color);
	border-bottom: 0;
}

.callout::after {
	position: absolute;
}

.callout.down::after {
	bottom: -15px;
	left: calc(50% - 15px);
}

.example {
	border-left: 10px solid var(--accent-2);
	background-color: var(--element-color);
	margin: 8px 0px;
	transition: 0.5s;
}

.example>summary {
	background: var(--accent-1);
	margin: 0;
	padding: 5px 0px;
	width: 100%;
	user-select: none;
}

.example p,
.example b {
	margin: 0px;
	padding: 5px;
}

.notification-container {
	position: fixed;
	top: 50px;
	left: 0;
	right: 0;
	display: flex;
	flex-direction: column;
	z-index: 10;
	width: fit-content;
	max-width: 90%;
	margin: 0px auto;
	align-items: center;
	gap: 3px;
}

.notif {
	margin: auto;
	border: solid;
	border-radius: 5px;
	padding: 3px;
	display: flex;
	align-items: center;
}

.notif>.close {
	padding-left: 10px;
	cursor: pointer;
	font-weight: bold;
}

/*Modal Styles*/
.modal-bg {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 5;
	background-color: #55555580;
}

.modal-window {
	position: relative;
	top: 5%;
	background-color: var(--bg-color);
	margin: auto;
	border-radius: 10px;
	min-width: 40%;
	width: fit-content;
	height: fit-content;
	z-index: 10;
	max-height: 90vh;
	max-width: 90vw;
	padding: 5px;
}

.modal-window>.content {
	padding: 3px;
}

.modal-title-bar {
	display: flex;
	box-shadow: 0 4px 2px -2px gray;
}

.modal-title-bar h3 {
	width: 100%;
	user-select: none;
	margin: 5px;
}

.modal-close {
	margin-left: 5px;
	float: right;
	cursor: pointer;
	text-decoration: none;
	font-weight: bold;
}

.modal-buttons {
	margin: 10px 0px;
	display: flex;
	justify-content: space-around;
}

.modal-buttons>button {
	cursor: pointer;
	padding: 5px;
	border-radius: 5px;
}

.form-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px;
}

/* Order, Quote, Job view pages */

.container-job {
	display: grid;
	gap: 10px;
	grid-template-areas:
		"a a a a b b"
		"c c d d d d";
}

.container-job section ul {
	width: fit-content;
	text-wrap: wrap;
}

.container-job section ul>li {
	width: fit-content;
	text-wrap: wrap;
}

.container-job>section:nth-child(1) {
	grid-area: a;
}

.container-job>section:nth-child(2) {
	grid-area: b;
	text-wrap-mode: wrap;
}

.container-job>section:nth-child(3) {
	grid-area: c;
}

.container-job>section:nth-child(4) {
	grid-area: d;
}

.container-job>section {
	padding: 5px;
	background-color: var(--element-color);
	border-radius: 8px;
}

/* Split container with sidebar */

.sidebar-split {
	display: grid;
	grid-template-columns: 1fr 5fr;
	max-height: 90vh;
}

.sidebar-split>div:first-child {
	background: var(--bg-accent);
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.sidebar-split>div:first-child>a {
	padding: 5px;
}

.sidebar-split>div>a:last-child {
	margin-top: auto;
}

.sidebar-split>div:first-child>a:hover,
.sidebar-split>div:first-child>a.active {
	backdrop-filter: brightness(80%);
}

.sidebar-split>div:nth-child(2) {
	padding: 5px;
	border: var(--bg-accent) solid thin;
}

/* Alert highlight colours */
.highlight {
	transition: ease 0.5s;
}

.highlight.clear {
	border-color: initial;
}

.highlight.default {
	border-color: var(--color-ok);
	background-color: var(--color-ok);
}

.highlight.success {
	border-color: var(--color-good);
	background-color: var(--color-good-alt);
}

.highlight.warning {
	border-color: var(--color-warn);
	background-color: var(--color-warn-alt);
}

.highlight.alert {
	border-color: var(--color-bad);
	background-color: var(--color-bad-alt);
}

.highlight.error {
	border-color: var(--color-bad);
	background-color: var(--color-bad-alt);
}

/* Vertical 1080p monitor/thin display adjustments */
@media only screen and (max-width: 1080px) {
	.grid {
		grid-template-columns: 1fr 1fr;
		gap: 15px;
	}

	main {
		margin-left: 10%;
		margin-right: 10%;
		width: 80%;
	}

	nav {
		padding-left: 10%;
		padding-right: 10%;
	}

	.sidebar-split {
		display: grid;
		grid-template-columns: 1fr 3r;
	}

	.legend-2>select {
		max-width: 150px;
		padding: 0;
		margin: 0;
		background: unset;
	}
}