html, body {
	height: 100%;
	font-size: 0.85em;
}

body {
	font-family: sans-serif;
	margin: 0;
}

div {
	position: relative;
}

.hidden {
	display: none;
}

/* Form Fields and Buttons */
form input, form select {
	padding: 5px;
	border: 1px solid #000;
	background-color: #FFF;
	border-radius: 3px;
}

form select {
	padding: 4px;
}
	
	form input[type="submit"], form button {
		padding: 5px 10px;
		border: 1px solid #000;
		background-color: #efefef;
		border-radius: 3px;
		font-size: 0.85rem;
		cursor: pointer;
		transition: background-color 0.3s linear;
	}
	
		form input[type="submit"]:hover, form button:hover {
			background-color: #cdcdcd;
		}
		
		form input.dark-btn[type="submit"], form button.dark-btn {
			background-color: #333333;
			color: #FFFFFF;
		}
		
			form input.dark-btn[type="submit"]:hover, form button.dark-btn:hover {
				background-color: #666666;
			}
		
		form input.showable-password {
			padding-right: 38px;
		}
		
			form .toggle-psw_btn {
				display: block;
				position: absolute;
				bottom: 0;
				right: 0;
				height: 33px;
				width: 33px;
				padding: 5px;
				border: 1px solid #000000;
				border-radius: 3px;
				box-sizing: border-box;
				background-color: #efefef;
				cursor: pointer;
				transition: background-color 0.3s linear;
			}
			
				form.disabled .toggle-psw_btn {
					display: none;
				}
			
				form .toggle-psw_btn:hover {
					background-color: #cdcdcd;
				}
			
				form .toggle-psw_btn .icon {
					display: block;
					height: 100%;
					width: 100%;
					background-color: #333333;
					-webkit-mask-repeat: no-repeat;
					mask-repeat: no-repeat;
					-webkit-mask-size: contain;
					mask-size: contain;
					-webkit-mask-position: center center;
					mask-position: center center;
			 		-webkit-mask-image: url(../img/visibility.svg);
			 		mask-image: url(../img/visibility.svg);
				}
			
					form .toggle-psw_btn.active .icon {
					 	-webkit-mask-image: url(../img/hidden.svg);
					 	mask-image: url(../img/hidden.svg);
					}
		
form .input-group {
	margin-bottom: 15px;	
}
	
.result_msg:empty {
	display: none;
}

.result_msg {
	margin-top: 15px;
}

	.result_msg h2 {
		margin: 0;
		font-size: 18px;
		color: green;
	}
	
	.result_msg p {
		margin: 0;
		font-size: 14px;
		color: green;
	}
	
	.error_msg h2, .error_msg p {
		color: red;
	}
	
		.error_msg h2 + p {
			color: #880000;
		}

.btn-wrapper.center {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 15px;
}
	
.btn {
	padding: 5px;
	border: 1px solid #000;
	background-color: #efefef;
	border-radius: 3px;
	font-size: 0.85rem;
	cursor: pointer;
    transition: background-color 0.3s linear;
    color: #000;
    text-decoration: none;
	text-align: center;
}
	
	.btn:hover:not([disabled]) {
		background-color: #cdcdcd;
	}
	
	.btn[disabled] {
		cursor: not-allowed;
		opacity: 0.75;
	}
	
	.btn.danger-btn { background-color: #ff4444; color: #FFF; }
	.btn.danger-btn:hover { background-color: #ff2222; }
	
.icon {
	display: inline-block;
	position: relative;
	height: 15px;
	width: 15px;
	background-color: currentColor;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-size: contain;
	mask-size: contain;
	-webkit-mask-position: center center;
	mask-position: center center;
}
	.icon.user-icon { 
		-webkit-mask-image: url(../img/user.svg);
 		mask-image: url(../img/user.svg);
	}

	.icon.add-user-icon {
		-webkit-mask-image: url(../img/add-user.svg);
 		mask-image: url(../img/add-user.svg);
	}
	
	.icon.exit-icon {
		-webkit-mask-image: url(../img/exit.svg);
 		mask-image: url(../img/exit.svg);
	}
	
	.icon.upload-icon {
		-webkit-mask-image: url(../img/upload.svg);
 		mask-image: url(../img/upload.svg);
	}
	
	.btn .icon { top: 4px; }

	#lang_menu {
		display: flex;
		gap: 5px;
		align-items: center;
		z-index: 9999;
	}

		#lang_menu a {
			display: block;
			width: 27px;
			height: 18px;
			background-size: cover;
			background-position: center;
			text-indent: -9999px;
			overflow: hidden;
			transition: opacity 0.2s;
			opacity: 0.75;
		}

			#lang_menu a.active, #lang_menu a:hover {
				opacity: 1;
			}

			#lang_menu a[href*="lang=it"] { background-image: url('https://flagcdn.com/it.svg'); }
			#lang_menu a[href*="lang=fr"] { background-image: url('https://flagcdn.com/fr.svg'); }
			#lang_menu a[href*="lang=en"] { background-image: url('https://flagcdn.com/gb.svg'); }
	
.modal-wrapper {
	position: fixed;
	top: 0;
	left: 0;
	width: 0;
	height: 0;
}
	
	.modal-wrapper .modal {
		position: fixed;
		top: 10%;
		left: 50%;
		transform: translate(-50%, -100vh);
		transition: transform 0.15s linear, opacity 0.3s linear;
		background-color: #FFF;
		border: 1px solid #333333;
		border-radius: 4px;
		opacity: 0;
		z-index: 2;
		box-shadow: 0px 0px 8px -3px #333333;
		overflow: hidden;
		width: 95%;
		max-width: 500px;
	}

		.modal-wrapper .modal.active {
			transform: translate(-50%, 0);
			opacity: 1;
		}
		
		.modal-wrapper .modal .modal-header {
			background-color: #efefef;
			border-bottom: 1px solid #333333;
		    padding: 0 33px 0 5px;
		}
		
			.modal-wrapper .danger-modal .modal-header { background-color: #ffaaaa; }
			.modal-wrapper .success-modal .modal-header { background-color: #b6fdad; }
		
			.modal-wrapper .modal .modal-header h2 {
				margin: 0;
			}
			
			.modal-wrapper .modal .modal-header .close-btn {
				position: absolute;
				top: 1.5px;
				right: 1.5px;
				cursor: pointer;
				font-size: 14px;
				padding: 0 2px;
				border: 1px solid black;
				border-radius: 4px;
				background-color: #cdcdcd;
				transition: all 0.15s linear;	
			}
			
				.modal-wrapper .modal .modal-header .close-btn:hover {
					background-color: #ababab;
				}
				
				.modal-wrapper .danger-modal .modal-header .close-btn { background-color: #ff8888; }
				.modal-wrapper .danger-modal .modal-header .close-btn:hover { background-color: #ff6666; }
				.modal-wrapper .success-modal .modal-header .close-btn { background-color: #7dd373; }
				.modal-wrapper .success-modal .modal-header .close-btn:hover { background-color: #5bb151; }
				
		.modal-wrapper .modal .modal-body {
			padding: 15px 10px;
		    line-height: 1.3;
		}		
		
			.modal-wrapper .modal .modal-body > *:first-child { margin-top: 0; }
			.modal-wrapper .modal .modal-body > *:last-child {	margin-bottom: 0; }
			
		.modal-wrapper .modal .modal-footer {
			padding: 10px;
			display: flex;
			justify-content: center;
			gap: 20px;
		}		
		
	.modal-wrapper .modal-overlay {
		background-color: #333333;
		width: 0;
		height: 0;
		opacity: .5;
		z-index: 1;
	}
	
		.modal-wrapper .modal.active ~ .modal-overlay {
			width: 100vw;
			height: 100vh;
		}
		
	#loading-modal img {
		display: block;
		height: 36px;
		width: 36px;
		margin: 0 auto 15px;
	}
		
/* Large Smartphone */
@media only screen and (min-width: 500px) {
	html, body {
		font-size: 1em;
	}
	
	.icon {
		height: 19px;
		width: 19px;
	}
		.btn .icon { top: 5px; }
		
	.modal-wrapper .modal .modal-header .close-btn {
		top: 2.5px;
		right: 2.5px;
		padding: 3px 5px 0px;
		font-size: 16px;
	}
}

/* LOGIN */
#login {
	padding: 5% 0 0;
}

	#login h1 {
		text-align: center;
		margin: 0 0 25px;	
	}

#login_form-wrapper {
    max-width: 95%;
    margin: 35px auto;
    width: 350px;
    padding: 26px 24px 34px;
    background-color: #efefef;
    border: 1px solid #cdcdcd;
    border-radius: 3px;
    box-shadow: 0px 0px 6px 2px #dedede;
    box-sizing: border-box;
}

	#login_form-wrapper label {
		display: block;
		margin-bottom: 2.5px;
		font-size: 0.9em;
		color: #444;
	}
	
	#login_form-wrapper input:not([type='submit']) {
		box-sizing: border-box;
		width: 100%;
		font-size: 1.1em;
	}
	
	#login_form-wrapper .g-recaptcha {
		margin-top: 25px;
	}

	#login_form-wrapper .result_msg {
		margin-top: 15px;
		margin-bottom: 15px;
		text-align: center;
	}
	

/*** Dashboard ***/
header .user_header {
	display: flex;
	justify-content: space-between;
	padding: 5px 10px;
	border-bottom: 1px solid #000;
	background-color: #666;	
	color: #FFF;
	line-height: 27px;
}

	header .navigation-bar {
		display: flex;
		gap: 5px;
		padding: 5px 10px;
		font-size: 0.85rem;
		background-color: #efefef;
		border-bottom: 1px solid #000;
	}
	
		header .navigation-bar a {
			color: #333;
			transition: color 0.3s linear;
		}
		
			header .navigation-bar a:hover {
				color: #000;
			}
	
#main {
	padding: 5px 10px;
	box-sizing: content-box;
	max-height: calc(100% - 65px);
	overflow: auto;
}

	#main > *:first-child {
		margin-top: 0;
	}
	
	#main .toolbar-wrapper {
		position: absolute;
		right: 0;
		top: 0;
	}
	
		.toolbar-wrapper .upload_btn { background-color: #7dd373; }
		.toolbar-wrapper .upload_btn:hover { background-color: #5bb151; }
		.upload_page .upload_btn { position: relative; padding-top: 0; margin-top: 15px; }
		.upload_page .upload_btn .icon {
			top: 3px;
		}
	
	.data-group.loading .table-wrapper:after {
		position: absolute;
		display: block;
		height: 100%;
		width: 100%;
		top: 0;
		left: 0;
		content: " ";
		background-image: url(../img/loading.gif);
		background-position: center 48px;
		background-repeat: no-repeat;
		background-size: 32px;
	}
	
	.data-group.loading .table-wrapper table {
		opacity: 0.5;
		min-height: 100px;
	}
	
	.data-group .table-wrapper {
		overflow-x: auto;
		max-width: 100%;
	}
		
		.data-group .table-wrapper table {
			border: 1px solid #ababab;
			border-collapse: collapse;
			min-width: 100%;
			transition: opacity .3s linear;
		}
			.data-group .table-wrapper table thead th {
				background-color: #cdcdcd;
				transition: background-color .3s linear;
			}
		
			.data-group .table-wrapper table th,
			.data-group .table-wrapper table td {
				border: 1px solid #ababab;
				padding: 2.5px;
			}
			
			.data-group .table-wrapper table th.sortable {
				cursor: pointer;
			}
			
				.data-group .table-wrapper table th.sortable:hover {
					background-color: #bcbcbc;
				}
			
				.data-group .table-wrapper table th.sortable .icon {
					margin-left: 5px;
					display: none;
					height: 15px;
					width: 15px;
					top: 2px;
					-webkit-mask-size: 150%;
					mask-size: 150%;
				}
				
					.data-group .table-wrapper table th.sortable.sorted-desc .icon {
						display: inline-block;
						-webkit-mask-image: url(../img/arrow-down.svg);
	 					mask-image: url(../img/arrow-down.svg);
					}
					
					.data-group .table-wrapper table th.sortable.sorted-asc .icon {
						display: inline-block;
						-webkit-mask-image: url(../img/arrow-up.svg);
	 					mask-image: url(../img/arrow-up.svg);
	 				}
	 		
	 		.data-group .table-wrapper table tr .actions {
	 			text-align: center;
	 			width: 24px;
	 		}
	 				
			.data-group .table-wrapper table tr td .delete-btn {
				cursor: pointer;
			}
			
				.data-group .table-wrapper table tr td .delete-btn .icon {
				    margin-bottom: -5px;
					background-color: #880000;
					-webkit-mask-image: url(../img/trash.svg);
					mask-image: url(../img/trash.svg);
					transition: background-color 0.3s linear;
				}
				
					.data-group .table-wrapper table tr td .delete-btn:hover .icon {
					    background-color: red;
					}
			
			.data-group .table-wrapper table tbody tr:nth-child(even) {
				background-color: #efefef;
			}
			
			.data-group .table-footer {
				display: grid;
				grid-template-columns: 1fr;
				grid-template-areas: "pagesizer-wrapper" "pagination-wrapper";
				gap: 10px;
				margin: 10px auto 0;
			}
			
				.data-group.loading .table-footer:after {
					position: absolute;
					display: block;
					height: 100%;
					width: 100%;
					top: 0;
					left: 0;
					content: " ";
				}

					.data-group .table-footer .pagination-wrapper {
						display: flex;
						width: 100%;
						max-width: 275px;
						justify-content: space-between;
						text-align: center;
						margin: auto;
						grid-area: pagination-wrapper;
					}
										
						.data-group .pagination-wrapper .prev-page,
						.data-group .pagination-wrapper .next-page {
							cursor: pointer;
						}
						
						.data-group .pagination-wrapper .prev-page.disabled,
						.data-group .pagination-wrapper .next-page.disabled {
							visibility: hidden;
						}
						
					.data-group .table-footer .pagesizer-wrapper {
						text-align: center;
						grid-area: pagesizer-wrapper;
					}
			
	/* Vertical Tablets */
	@media only screen and (min-width: 768px) {
		.data-group .table-footer {
			grid-template-areas: "offset pagination-wrapper pagesizer-wrapper";
			grid-template-columns: 1fr 3fr 1fr;
		}
		
		.data-group .table-footer .pagesizer-wrapper {
			text-align: right;
		}
		
	}
/*** END - Dashboard ***/	

/*** Profile ***/
.entry-form {
	max-width: 768px;
}

.entry-form .input-group > * {
	width: 100%;
	box-sizing: border-box;
}
	
	#password_form:not(.disabled) .password-change_btn, 
	#password_form.disabled input, #password_form.disabled #pf_confirm-password-ig {
		display: none;
	}
	
#profile_msg {
	margin-bottom: 15px;
}

.entry-form .input-group > .toggle-psw_btn {
	width: 27px;
	height: 27px;
}

/* Vertical Tablets */
@media only screen and (min-width: 768px) {
	.entry-form .input-group {
		display: flex;
		justify-content: space-between;
		align-items: center;
	}

		.entry-form .input-group .showable-password {
			width: calc(100% - 32px);
		}
}
/*** END - Profile ***/

/*** Uploads ***/
	#upload_pdf_form textarea {
		width: 255px;
		height:150px;
		resize: none;
		margin-top: 10px;
	}

	#analyze_form-wrapper, #savetodb_form-wrapper, #reload_btn {
		display: none;
	}
/*** END - Uploads ***/
