
* {
	transition: 0.2s
}

:last-child:not(body) {
	margin-bottom: 0;
}

.table-hover tr {
	transition: background-color 0.05s;
}

.table.align-middle label {
	margin-bottom: 0;
}

:disabled, [disabled], a[disabledlink] {
	cursor: not-allowed !important;
}

:invalid {
	box-shadow: none;
}
:focus {
	outline: none;
}
::-moz-focus-inner {
	border: 0;
}

svg {
	height: 1em;
	margin-top: -2%;
}
path {
	color: inherit;
}


body {
	--main-background: beige;
	background-color: var(--main-background);
	margin-bottom: 50px;
}

.bg-dark {
	color: #E3E4E5;
}

.navbar {
	position: sticky !important;
	top: 0;
	z-index: 100;
	background-color: #0c2e94;
	color: white;

	justify-content: unset;
	flex-direction: column;
	align-items: baseline;
}

.navbar-toggler {
	border-color: rgba(255, 255, 255, .5);
	color: rgba(255, 255, 255, .85);
}
.navbar-toggler:hover {
	border-color: rgba(255, 255, 255, .7);
	color: white;
}

.navbar-nav {
	background-color: inherit;
}

nav * {
	color: inherit;
}

nav .nav-link > * {
	font-size: 1rem;
}

nav .nav-link:hover {
	color: #ccf;
}

#welcome {
	position: absolute;
	right: 10px;
	top: 0.5rem;
	z-index: -1;
	text-align: right;
}

#welcome > span {
	cursor: help;
}

#welcome svg {
	margin-top: 0;
}

#welcome a {
	color: #ddf;
}
#welcome a * {
	color: inherit;
}
#welcome a:hover {
	color: #eef;
}

@media all and (min-width: 576px) {
	#welcome a {
		display: inline-block;
	}
}


.error {
	color: darkred;
}

.error::before {
	content: "Erreur : ";
}


.highlighted {
	background-color: rgba(100, 150, 250, 0.2);
}

.done {
	background-color: rgba(150, 250, 150, 0.4);
}


#messages {
	font-weight: bold;
	margin: 8px;
}

/*main a {
	border-bottom: 1px solid transparent;
}*/

main a:hover {
	text-decoration: none;
	/*border-color: currentColor;*/
}

p > .btn {
	vertical-align: baseline;
}

a.fas, a.far, a.fal, a.fab {
	cursor: pointer;
	color: black;
	margin-left: 5px;
	padding: 4px 3px;
	font-size: 85%;
	border: 1px solid transparent;
	border-radius: 100%;
	text-decoration: none !important;
}
a.fas:hover, a.far:hover, a.fal:hover, a.fab:hover {
	border-color: #222222;
}
a.fas:active, a.far:active, a.fal:active, a.fab:active {
	box-shadow: inset -1px -1px gray, inset 1px 1px gray;
}
a.fas[disabledlink], a.far[disabledlink], a.fal[disabledlink], a.fab[disabledlink] {
	box-shadow: none !important;
	border-color: transparent!important;
	opacity: 0.8;
}


details {
	border: 1px solid rgba(0, 0, 0, 0);
	border-radius: 5px;
	padding: 0.3rem;
	margin-bottom: 1rem;
}

details[open] {
	border-color: rgba(0, 0, 0, 0.3);
}

details summary {
	font-weight: 600;
}

details[open] summary {
	margin-bottom: 0.5rem;
	padding-bottom: 0.2rem;
	border-bottom: 1px dotted rgba(0, 0, 0, .5);
}

#notifications details, #notifications details summary {
	border: 0;
	padding: 0;
	margin: 0;
	font-weight: initial;
}


details dl {
	margin-left: 1rem;
	margin-bottom: 0;
}

dl:empty { display: none; }
dl:-moz-only-whitespace { display: none; }

details dl h1 {
	margin-left: -1rem;
}

dl h1 {
	font-size: 1.6rem;
	font-weight: 600;
}

dd {
	margin-left: 1rem;
}


.align-middle th, .align-middle td {
	vertical-align: middle;
}


#fileDrag {
	display: none;

	color: #555;
	font-weight: bold;
	font-size: 1.2em;
	text-align: center;

	padding: 2em 0;
	margin: 1em 0;
	border: 2px dashed #555;
	border-radius: 7px;
	cursor: default;
}

#fileDrag.hover {
	color: #0a0;
	border-color: #0a0;
	border-style: solid;
	box-shadow: inset 0 3px 4px #888;
}


form:focus-within .form-control:invalid {
	border-color: #ffbdbd;
}

.form-control:focus:invalid {
	box-shadow: 0 0 0 .2rem rgba(250, 20, 20, 0.35);
}

option {
	color: black;
}

input[type=date] {
	padding-right: 0;
}
input[type=date]:valid:not([required]),
input[type=date]:disabled:not([required]) {
	padding-right: .5rem;
}


.fa-level-up-alt {
	font-size: 90%;
	transform: scaleX(-1);
}
