*, ::before, ::after
{
	box-sizing: border-box;
	/*margin: 0;
	padding: 0;*/
}

body
{
	background: #666 url("../images/background.jpg") fixed no-repeat center/cover;
	max-width: 1000px;
	margin: auto;
	font-family: Arial, Verdana, sans-serif;
	display: flex;
	justify-content: center;
	align-items: center;
}

form
{
	background-color: #ddd;
	border: 3px solid #f1f1f1;
	opacity: 0.9;
}

#img-container { text-align: center; }

#logo
{
	margin: 12px 0 0;
	width: 40%;
	max-height: 150px;
	max-width: 150px;
}

fieldset { margin: 0 16px 16px; }

.rel { position: relative; }

.toggle
{
	position: absolute;
	right: 15px;
	top: 15px;
}
/* Si pas dans .rel
.toggle
{
	position: relative;
	float: right;
	top: -45px;
	right: 10px;
}*/

.toggle:hover
{
	color: grey;
	transform: scale(1.1);
}

.toggle:active { transform: scale(1.2); }

label:has(> img)
{
	display: flex;
	align-items: center;
	gap: .5rem;
}

label:has(+ :required, +.rel :required)::after
{
	content: " *";
	color: red;
}

input[type=text], input[type=password], input[type=email], input[type=tel]
{
	width: 100%;
	margin: 8px 0;
	padding: 12px 20px;
	border: 1px solid #ccc;
}

input:hover
{
	border: 1px solid dodgerblue !important;
}
input:not(input[type=date]):hover
{
	border-right-width: 8px !important;
}

input:focus { border-color: #346abf !important; }

input:required { border-right-width: 8px; }

input:invalid/*:not(:placeholder-shown)*/
{
	border-color: red;
	background-color: #ffebee;
}

input:valid
{
	border-color: green;
	background-color: #e8f5e9;
}

#bottom-container
{
	display: flex;
	align-items: center;
	flex-wrap: wrap-reverse;
	gap: 1rem;
}

select, input[type=date]
{
	margin: 8px 0;
	padding: 5px;
	/*display: block;*/
}

button
{
	background-color: #04aa6d;
	color: white;
	padding: 15px 20px;
	margin: 8px 0;
	border: none;
	cursor: pointer;
	width: 100%;
}

button:hover
{
	font-weight: bold;
	box-shadow: 0 0 10px 0 rgb(0, 0, 0, 0.25);
}

button:active { box-shadow: 0 0 10px 0 rgb(0, 0, 0, 0.25) inset; }

#reset-container
{
	background-color:#f1f1f1;
	padding: 5px 15px;
	border-radius: 0 0 1em 1em;
	display: flex;
	justify-content: space-around;
	align-items: center;
	gap: 1rem;
}

#reset
{
	width: auto;
	margin: 10px 0;
	background-color: #f44336;
}

/* Si entrées invalides */
.error
{
	color: red;
	text-align: center;
}

.none
{
	display: none;
}

/* Change styles for reset button on extra small screens */
@media screen and (max-width: 300px)
{
	#reset { width: 100%; }
	#forgot { float: none; margin: 5px 0; }
}

	/* Icônes */

/*@import url("https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css") screen;*/

	/* Responsive */

@media screen and (min-width: 500px)
{
	#center { height: 100vh; }
	/*html, body { height: 100%; }*/
	
	#bottom-container { justify-content: space-around; }
}

@media screen and (min-width: 800px)
{
	form { border-radius: 1em; }
}
