/* THIS FILE CONTAINS STANDARD STYLES FOR SIMPLESAP */
/* THIS PARTICULAR FILE CONCERNS WITH THE CSS OF THE CLASSES
	- RWD (FLEX)
	- NORMAL CLASSES (ALPHABETICAL)
	- MEDIA QUERIES (MOBILE FIRST APPROACH)
*/

/* FIRSTLY THE RESPONSIVE WEB DESIGN*/
/* DYNAMIC RWD */
.flex-container {
	display: flex;
	flex-wrap: nowrap;
}

.flex-column {
	flex-direction: column;
}

.flex-row-reverse {
	flex-direction: row-reverse;
}

.flex-space-between {
	justify-content: space-between;
}

.flex-grow {
	flex-grow: 1;
}

.flex-101 {
	flex: 1 0 auto;
}

.flex-50 {
	flex: 100%;
}

.flex-child {
	flex: 0 0 auto;
}

.flex-centerxy {
	align-items: center;
	justify-content: center;
}

.flex-centery {
	align-items: center;
}

.flex-centerx {
	justify-content: center;
}

.flex-device-toggle {
	flex-direction: column;
}

.grid-auto {
	display: grid;
	grid-template-columns: auto;
	grid-auto-rows: auto;
}

.grid-column {
	display: grid;
	grid-auto-flow: column;
	align-items: center;
}

.grid-row {
	display: grid;
	grid-auto-flow: row;
}

.grid-1-1 {
	display: grid;
	grid-template-columns: auto;
	column-gap: 1rem;
	row-gap: 1rem;
}

.grid-2-1 {
	display: grid;
	grid-template-columns: auto;
	column-gap: 1rem;
	row-gap: 1rem;
	overflow: visible;
}

.grid-3-3 {
	/* mobile first */
	display: grid;
	grid-template-columns: auto auto;
	column-gap: 1rem;
	row-gap: 1rem;
}

/* TABLE CLASSES */
.row-select:hover {
	background-color: rgb(185, 255, 232);
}

/* INPUT MODAL CLASSES */
.relation-search-suggestion-container {
	overflow: auto;
	grid-template-rows: max-content;
}

.relation-search-suggestion-container table {
	width: 100%;
}

.json-assoc {
	display: grid;
	grid-template-columns: max-content 1fr;
}

.input-modal-number {
	width: max-content;
	background: #333333;
	color: white;
	border-radius: 8px;
	padding: 5px;
	z-index: 1;
}

.input-modal-mobile-order {
	padding: 0.5rem;
	display: grid;
	grid-template-rows: max-content;
	gap: 1rem;
}

.input-modal-mobile-body {
	display: grid;
	height: -webkit-fill-available;
	grid-auto-rows: 1fr max-content;
	/* for the menu at the bottom */
}

.input-modal-mobile-menu {
	display: grid;
	grid-template-columns: repeat(auto-fill, 25%);
	height: 4rem;
	width: 100%;
	justify-items: center;
	background: white;
}

.input-modal-mobile-menu img {
	max-height: -webkit-fill-available;
}

/* NORMAL CLASSES */
.programme {
	display: none;
	grid-template-rows: max-content 1fr;
}

.buttoned_slider {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(100px, auto));
}

.buttoned_slider button {
	width: 100%;
	aspect-ratio: 1;
	color: black;
	background: white;
	border: 3px solid black;
}

.crossed {
	text-decoration: line-through;
	color: gray;
}

.comment-section {
	display: grid;
	grid-template-columns: 10% 1fr 10% 10%;
}

.comment-section-area {
	padding: 0 0 1rem 1rem;
	display: grid;
	grid-template-rows: max-content 1fr;
}

.comment-section textarea {
	padding: 0.3rem;
	font-size: 1rem;
}

.datalist_suggestions {
	position: absolute;
	top: 100%;
	padding: 0 1rem;
	background: white;
	border: 1.5px solid #c6c6c6;
	border-radius: .3rem;
	width: 100%;
	z-index: 1;
}

.datalist_suggestions button {
	background: initial;
	color: black;
	padding: 0.5rem 0;
	width: 100%;
	text-align: left;
}

.datalist_suggestions button:hover {
	background-color: #87e3ff;
}

.datalist_suggestions_not_positioned {
	top: 100%;
	padding: 0 1rem;
	background: white;
	border: 1.5px solid #c6c6c6;
	border-radius: .3rem;
	width: 100%;
	z-index: 1;
}

.datalist_suggestions_not_positioned button {
	background: initial;
	color: black;
	padding: 0;
	width: 100%;
	text-align: left;
}

.datalist_suggestions_not_positioned button:hover {
	background-color: #87e3ff;
}

.dashboard-buttons-container {
	overflow-y: scroll;
	display: grid;
	grid-template-columns: auto;
	gap: 1rem;
}

.disabled-button {
	background-color: gray;
}

.input-displayer {
	padding: .5rem 1rem;
	display: grid;
	row-gap: .5rem;
	overflow: visible;
}

.input-displayer span {
	color: rgb(255, 68, 68)
}

.input_modal_container {
	background-color: rgba(0, 0, 0, 0.1);
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100dvh;
	z-index: 2;
}

.input_modal_field {
	display: grid;
	background-color: white;
	padding: 1rem;
	width: calc(100% - 2rem);
	border-radius: 15px;
	flex-direction: column;
	height: calc(100dvh - 2rem);
}

.input-modal-input {
	width: 5rem;
	text-align: right;
}

.login_modal {
	background-color: white;
	border-radius: 20px;
	max-width: 800px;
	margin: 0 auto;
}

.login_modal input {
	width: 100%;
	max-width: 100%;
}

.modal {
	padding: 1rem;
	position: absolute;
	top: 0;
	bottom: 0;
	width: 100%;
	z-index: 20;
	justify-content: center;
	align-content: center;
	background: rgba(0, 0, 0, 0.3);
}

.modal-menu {
	display: grid;
	overflow: visible;
	grid-template-columns: max-content 1fr max-content;
	align-items: center;
}

.modal-menu .modal-menu-spacer {
	flex: 1;
	display: none;
}

.modal-menu button {
	width: 4rem;
	padding: .5rem 0.7rem;
	height: 4.5rem;
}

.modal-menu-plan-area {
	display: inline-grid;
	grid-auto-flow: column;
	width: unset !important;
	grid-column: span 4;
}

.modal-menu-relation-resource-area {
	overflow: visible;
	width: 100% !important;
	display: grid;
	grid-auto-flow: column;
}

.modal-menu-relation-resource-area input {
	width: 100%;
	max-width: 100%;
	z-index: 2;
}

.modal-menu-relation-resource-area div {
	width: 100%;
	position: absolute;
	top: calc(100% - 3px);
	padding-top: 3px;
	border: 1px solid #c6c6c6;
	border-top: none;
	z-index: 1;
	background: white;
	border-bottom-left-radius: 0.3rem;
	border-bottom-right-radius: 0.3rem;
}

.modal-menu-relation-resource-area #relation_resource_delete_button {
	background: initial;
	z-index: 2;
	position: absolute;
	right: 0;
	top: 50%;
	height: 50%;
	width: fit-content;
	padding: 0.2rem 0.3rem;
}

.modal-menu-relation-resource-area div button {
	background: initial;
	width: 100%;
	padding: 0.5rem;
	color: initial;
	position: relative;
}

.modal-menu-relation-resource-area div button:hover {
	background-color: #b9ffe8;
}

.modal-menu .close-button {
	grid-row: 1;
	grid-column: -2;
}

.modal-message-box {
	padding: 1rem 0.5rem;
	border-radius: 10px;
	background: white;
	display: grid;
	grid-template-columns: auto auto;
}

.modal_input_box {
	padding: 1rem 0.5rem;
	border-radius: 10px;
	background: white;
	display: grid;
	grid-template-columns: auto;
	max-width: 80%;
}

.modal-input-hover-border {
	border-color: rgba(0, 0, 0, 0);
}

.modal-input-hover-border:focus {
	border-color: rgba(0, 0, 0, 1);
}

.modal-input-hover-border:hover {
	border-color: rgba(0, 0, 0, 1);
}

.modal-file-input {
	border: 1.5px solid #c6c6c6;
	padding: 0.3rem;
	border-radius: 0.3rem;
	display: flex;
	align-items: center;
}

.modal-file-input input {
	display: none;
}

.negative-button {
	border: 2px solid black;
	background-color: white;
	color: black;
}

.negative-button:hover {
	border: 3px solid black;
	transform: scale(1.05);
}

.row-suggestion:nth-child(even) {
	background-color: rgb(185, 255, 232);
}

.row-suggestion:hover {
	background-color: rgb(119, 255, 210);
}

.tab-button {
	border-radius: 0;
	border-top-left-radius: 15px;
	border-top-right-radius: 15px;
	padding: 0.8rem;
	font-size: 1.2rem;
	font-weight: bold;
}

.tab-button:active {
	color: white;
}

.side-menu {
	background-color: white;
	top: 0;
	display: grid;
	height: 100%;
	grid-auto-rows: 3rem;
	overflow: visible;
}

.move-right {
	transform: translateX(0) !important;
}

.side-menu-container {
	height: 100%;
	overflow-y: auto;
}

.side-menu-outer-container {
	height: 100%;
	background: white;
	overflow: visible;
	position: absolute;
	z-index: 1;
	transform: translateX(-100%);
	transition: transform 0.5s ease-in-out;
}

.side-menu a {
	padding: 0 .7rem;
	align-content: center;
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: min-content;
	align-items: baseline;
}

.side-menu a:hover {
	text-decoration: underline;
}

.side-menu .beta-tag {
	background: #94e4ff;
	border-radius: 1rem;
	padding: .2rem .5rem;
	color: white;
}

.hamburger-toggle {
	padding: .7rem;
	position: absolute;
	height: 3rem;
	aspect-ratio: 1;
	left: 100%;
	background: white;
	border-top-right-radius: 1rem;
	border-bottom-right-radius: 1rem;
}

.small-hr {
	width: 30px;
	margin: 0.5rem 0;
}

.table-scroll-container {
	overflow-y: auto;
	overflow-x: auto;
}

.text {
	padding: 1rem 1rem;
}

.texty {
	padding: 1rem 0;
}

.textx {
	padding: 0 1rem;
}

.tooltip_account_menu {
	position: absolute;
	background-color: white;
	right: 10px;
	top: 65px;
	padding: 0.3rem;
	border-radius: 0.5rem;
	box-shadow: 2px 2px 5px 0px #d9d9d9;
}

.tooltip_account_menu p {
	padding: .2rem;
	cursor: pointer;
}

.tooltip {
	overflow: visible;
}

.tooltiptext {
	display: none;
	background-color: #555;
	color: #fff;
	text-align: center;
	border-radius: 5px;
	padding: 5px;
	position: absolute;
	z-index: 1;
	bottom: 70%;
	left: 50%;
	margin-left: -15px;
	opacity: 0;
	transition: opacity 0.3s;
}

.overlay {
	background-color: rgba(0, 0, 0, 0.3);
	width: 100%;
	position: absolute;
	top: 0;
	left: 0;
	height: 100dvh;
	z-index: 3;
	align-content: center;
	justify-items: center;
}

.popup {
	background: white;
	border-radius: 1rem;
	padding: 1rem;
	display: grid;
	grid-auto-flow: row;
	width: 100%;
}

.red-text {
	color: rgb(255, 0, 0);
}

.input-field-warning {
	border-color: red;
	background-color: rgb(255, 200, 200);
	--input-border-colour: red;
}

.input-field-confirm {
	border-color: green;
	--input-border-colour: green;
}

/* STATS CLASSES */
.stats_container {
	display: grid;
	gap: 1rem;
	overflow: visible;
}

.stats-tile {
	border-radius: 15px;
	box-shadow: rgba(0, 0, 0, 0.4) 0px 0px 8px 1px;
	display: grid;
}

.stats-tile>div {
	padding: 1.2rem 0.5rem;
}

.stats-tile>div:first-of-type {
	padding: 2rem 1rem;
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: max-content;
	justify-content: end;
	gap: .5rem;
}

.stats-tile>div.up {
	background: linear-gradient(#59bd59, #c6da60);
}

.stats-tile>div.down {
	background: linear-gradient(#fa2b2b, #f6ab50);
}

.stats-tile h4 {
	text-align: right;
}

.stats-tile span {
	color: white;
	font-size: 1.5rem;
}

.stats_row {
	display: grid;
	grid-auto-flow: column;
	justify-content: right;
	gap: 1rem;
}

/* INPUT MODAL CLASSES */
.input-modal-panel-container {
	display: grid;
	grid-template-columns: 1fr max-content;
}

.input-modal-right-panel {
	display: grid;
}

.input-modal-left-panel {
	display: grid;
	background-color: rgb(148, 228, 255);
	grid-template-rows: max-content 1fr max-content;
}

.input-modal-left-panel-body {
	display: grid;
	grid-template-rows: max-content;
	overflow-y: scroll;
}

.input-modal-left-panel-footer {
	align-items: baseline;
	padding: 1rem 1.5rem;
	display: grid;
	grid-template-columns: max-content 1fr;
}

/* PROGRAMME CLASSES */
.programme-side {
	flex-grow: 1;
}

.programme-container {
	width: 100%;
	border-radius: 0.8rem;
}

/* SLIDER CLASSES */
/* The switch - the box around the slider */
.switch {
	position: relative;
	display: inline-block;
	width: 60px;
	height: 34px;
}

/* Hide default HTML checkbox */
.switch input {
	opacity: 0;
	width: 0;
	height: 0;
}

/* The slider */
.slider {
	position: absolute;
	cursor: pointer;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background-color: #ccc;
	-webkit-transition: .4s;
	transition: .4s;
}

.slider:before {
	position: absolute;
	content: "";
	height: 26px;
	width: 26px;
	left: 4px;
	bottom: 4px;
	background-color: white;
	-webkit-transition: .4s;
	transition: .4s;
}

input:checked+.slider {
	background-color: #87e3ff;
}

input:focus+.slider {
	box-shadow: 0 0 1px #87e3ff;
}

input:checked+.slider:before {
	-webkit-transform: translateX(26px);
	-ms-transform: translateX(26px);
	transform: translateX(26px);
}

/* Rounded sliders */
.slider.round {
	border-radius: 34px;
}

.slider.round:before {
	border-radius: 50%;
}

/* THE LANDING PAGE */

.landing-department {
	display: flex;
	flex-direction: column;
	align-items: center;
	background: white;
	border-radius: 1rem;
	padding: 2rem;
}

/* GENERAL ORDER CLASSES */

.order-items-container {
	display: grid;
	grid-template-columns: auto;
}

/* RWD CLASSES */

.mobile {
	display: revert;
}

.desktop {
	display: none;
}

.tablet {
	display: none;
}

/* MEDIA QUERIES */
@media only screen and (min-width: 433px),
screen and (hover: hover) and (pointer: fine) {
	.popup {
		width: 80%;
	}

	.tablet {
		display: block;
	}

	.mobile {
		display: none !important;
	}

	.side-menu-outer-container {
		position: relative;
		transform: translateX(0px);
		z-index: 0;
	}

	.hamburger-toggle {
		display: none !important;
	}

	.dashboard-buttons-container {
		grid-template-columns: auto auto;
		grid-template-rows: max-content max-content;
	}

	.modal-menu {
		grid-auto-flow: column;
		grid-template-columns: revert;
	}

	.modal-menu .close-button {
		justify-self: end;
		grid-column: initial;
	}

	.modal-menu-relation-resource-area {
		width: 10rem !important;
		grid-auto-flow: row;
	}

	.modal-menu-relation-resource-area div {
		top: calc(100% - 3px);
		padding-top: 3px;

	}

	/* GRID CLASSES */
	.grid-2-1 {
		grid-template-columns: auto auto;
	}

	/* GENERAL ORDER CLASSES */
	.order-items-container {
		display: grid;
		grid-template-columns: auto auto;
	}
}

@media only screen and (min-width: 800px) {
	.flex-50 {
		flex: 50%;
	}

	.flex-device-toggle {
		flex-direction: row;
	}

	.grid-3-3 {
		grid-template-columns: auto auto auto;
		column-gap: 3rem;
		row-gap: 3rem;
	}

	.tablet {
		display: none;
	}

	.desktop {
		display: revert;
	}

	.text {
		padding: 1rem 1.5rem;
	}

	.textx {
		padding: 0 1.5rem;
	}

	.input_modal_field {
		width: 80%;
		height: 80dvh;
	}

	.modal-menu .modal-menu-spacer {
		display: block;
	}
}