* {
  	box-sizing: border-box;
  	font-family: -apple-system, BlinkMacSystemFont, "segoe ui", roboto, oxygen, ubuntu, cantarell, "fira sans", "droid sans", "helvetica neue", Arial, sans-serif;
  	-webkit-font-smoothing: antialiased;
  	-moz-osx-font-smoothing: grayscale;
}

:root {
	/* Login: #3274d6   Menu: #2f3947 */
  --blue: #5472ae;
  --gris: #c1c4c8;
  --red: #e8625a;
  --blanc: #ffffff;
  --vert: rgba(148, 255, 148, .8);
  --jaune: rgba(255, 255, 128, .5);
  --blancgris: #f3f4f7;
  --grisclair: #dddfe1;
  --grisbleu: #4a536e;
  --grisfonce: #5f626b;
 
	--jaune-pale: rgba(255, 255, 128, .2);
	--bleu-pale: rgba(102, 178, 255, .2);
	--rouge-pale: rgba(255, 204, 204, .2);
	--vert-pale: rgba(51, 170, 51, .1);

	--table-bleu: rgba(148, 148, 255, .8);
	--table-jaune: rgba(255, 255, 128, .5);
	--table-orange: rgba(255, 206, 81, .8);
	--table-rouge: rgba(255, 137, 137, .8);
	--table-gris: rgba(0, 0, 0, .2);
	--table-vert: rgba(148, 255, 148, .8);

 
}

@media (prefers-color-scheme: light) {

	:root {
		--alter-hover: var(--jaune-pale);
		--alter-even: var(--bleu-pale);
		--alter-odd: var(--rouge-pale);
		
		--back-color: var(--blancgris);
		--back-main: var(--blanc);
		--back-filters: var(--vert-pale);
		--back-menu: var(--blue);
		--back-menu-hover: var(--grisfonce);
		--back-btn-actif: var(--jaune);
		--back-btn-passif: var(--vert);

		--text: var(--grisbleu);		
		--text-h1:	var(--grisbleu);
		--text-h2:	var(--grisbleu);
		--text-h3:	var(--grisbleu);
		--text-menu-link: var(--blancgris);
		--text-menu-hover: var(--red);
		
		--link: var(--grisbleu);
		--link-hover: var(--red);
		--link-img: var(--red);

		--border: var(--grisfonce);
		--border-light: var(--grisclair);
		
	}

	.on-dark { display: none; }
	.on-light { display: block; }	
	
}

@media (prefers-color-scheme: dark) {

	:root {
		--alter-hover: var(--jaune-pale);
		--alter-even: var(--bleu-pale);
		--alter-odd: var(--rouge-pale);
		
		--back-color: var(--grisfonce);
		--back-main: var(--gris);
		--back-filters: var(--vert-pale);
		--back-menu: var(--blue);
		--back-menu-hover: var(--grisbleu);
		--back-btn-actif: var(--jaune);
		--back-btn-passif: var(--vert);

		--text: var(--grisbleu);		
		--text-h1:	var(--grisbleu);
		--text-h2:	var(--grisbleu);
		--text-h3:	var(--grisbleu);
		--text-menu-link: var(--blancgris);
		--text-menu-hover: var(--red);
		
		--link: var(--grisbleu);
		--link-hover: var(--red);
		--link-img: var(--red);

		--border: var(--grisfonce);
		--border-light: var(--grisclair);
		
	}

	/* Inverser le fond desktop */
	.revert { filter: invert(100%); }
	.revert-box { backdrop-filter: invert(100%); }

	.on-dark { display: block; }
	.on-light { display: none; }	
	
} 

.leurre{
	display:none;
}

div.gauche {
	text-align: left
}

/**************************************************************************************/
/******************************* STRUCTURE BODY ***************************************/

body {
  	/*background-color: #435165;*/
	background-color: var(--back-color);
	text-align: center;
	margin-top:0;
}


.wallpaper {
	background-image: linear-gradient(rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0.7)), url("../images/wallpaper.jpg");
	background-position: center;
	background-size: cover;
	height: calc(100vh - 16px);
	background-repeat: no-repeat;
	background-attachment: fixed;
}

h1 {
	/*font-size: 24px;*/
	font-size: 1.8em;
	color: var(--text-h1);
}

h2 {
	/*font-size: 22px;*/
	font-size: 1.5em;
	color: var(--text-h2);
}

h2 a {
	/*font-size: 22px;*/
	text-decoration: none;
	color: var(--text-h2);
}

h3 {
	/*font-size: 16px;*/
	font-size: 1em;
	font-weight: normal;
	color: var(--text-h3);
}

p {
	/*font-size: 16px;*/
	font-size: 1em;
	color: var(--text);
}

a {
	color: var(--link);
	text-decoration: none;
	filter: sepia(90%) hue-rotate(190deg) saturate(500%);
}

a:hover {
	color: var(--link-hover);
	filter: none;
}

/****************************************************************************************/
/************************************* DESKTOP ******************************************/

@media (min-width: 1236px) {

	.mobile { display: none !important; /* affichage des éléments */ }

	.main {
		width: 100%;
		text-align: center;
	}

	.navtop {
		height: 60px;
	}

	.navtop div {
		height: 60px;
		width: 1000px; 	/*width: 1000px;*/
	}

	/* position du burger */
	.menu {
		padding: 0 0 0 10px;
		margin: 18px 0;
	}	
	
	.menu > li {
		width: 60px;   /* Largeur du bouton menu */
		height: 40px;  /* Hauteur du bouton menu */
		line-height: 30px;  /* Hauteur des lignes du menu */
	}
	
	.content {
		min-width: 800px;  /* pour avoir un contenu fin centré */
	}
	
	.login {
		width: 500px;
	}

	.login form input[type="password"], .login form input[type="email"], .login form input[type="code"] {
		width: 410px;
		height: 50px;
	}

	.login form label {
		width: 50px;
		height: 50px;
	}

	.title img {
		width: 40px;
	}	
	
	.firstrow img {
		width: 40px;
	}

	input[type="image"] {
		width: 40px;
	}	
	
	.vue {
		width: 50px;
	}

	table {

	}	
	
	td {
		white-space: nowrap;
	}

	/* Recherche et Clear */

	input[type="search"] {
		width: 300px;
		height: 40px;
		padding: 5px 10px;
		font-size: 1em;
		border-radius: 1vh;
	}

	.btn-clear {
		height: 40px;
		margin: 0;
		font-size: 1em;
		border-radius: 1vh;
	}

	button,input[type="button"] {
		padding: 4px 10px;
	}

}

/****************************************************************************************/
/*************************************** MOBILE *****************************************/

@media (max-width: 1235px) {
	
	body {
		font-size: 1.5em;
	}

	/* On augmente la taille des titres */
	h1 {
		font-size: 3em;
	}

	h2 {
		font-size: 2em;
	}

	h3 {
		font-size: 1.5em;
	}
	
	.no-mobile { display: none !important; /* masquage des éléments */ }

	.main {
		width: 100%;
		text-align: center;
		
	}
	
	.navtop {
		width: 100%;
		height: 118px; /* Hauteur du menu */
		/*padding-top: 8px;*/
		top: 0;
		position: sticky;
		z-index: 2; /* force de rien voir derrière */
		/*overflow: hidden;*/
	}	

	.navtop div {
		width: 100%;
		
	}

	/* Les images du menu horizontale */
	.navtop div a {
		font-size: 2em;
	}

	/* position du burger */
	.menu {
		padding: 0 0 0 10px;
		margin: 18px 0;
	}	

	.menu > li {
		width: 100px; /* Largeur du bouton menu */
		height: 80px; /* Hauteur du bouton menu */
		line-height: 100px; /* Hauteur des lignes du menu */
		font-size: 1.8em;
	}
	
	.content {
		max-width: 100%; /* Sur mobile, on ne depasse pas */
	}
	
	.login {
		width: 600px;
	}

	.login form input[type="password"], .login form input[type="email"], .login form input[type="code"] {
		width: 510px;
		height: 60px;
	}	

	.login form label {
		width: 60px;
		height: 60px;
	}

	
	.title img {
		width: 80px;
	}

	.firstrow img {
		width: 80px;
	}

	input[type="image"] {
		width: 80px;
	}
	
	.nav {
		font-size: 1.5em;
	}

	.vue {
		width: 70px;
	}

	/* Tableau en lignes  */

	table {
		table-layout: fixed;
	}	
	
	.main tbody {
	/*display: grid;  desktop? */
	}
	.main tr {
	display: block;
	margin: 10px 0;
	/*border:solid black;*/
	}	
	.main td {
	display: block;
	}
	.main tr td + td {
	order: 1;
	}

   /* Recherche et Clear */

	input[type="search"] {
		width: 100%;
		height: 80px;
		padding: 10px 20px;
		font-size: 2em;
		border-radius: 2vh;
	}

	button,input[type="button"] {
		padding: 4px 20px;
	}

	.btn-clear {
		height: 80px;
		margin: 0;
		font-size: 1.2em;
		border-radius: 2vh;
	}
	
	/* Dans la CSS Class settings */
	.zoom1 { font-size: 3em; }
	.zoom2 { font-size: 2em; }
	.zoom3 { font-size: 1.5em; }
	.no-mobile-1 { display: none !important; }
	.no-mobile-2 { display: none !important; }
	.no-mobile-3 { display: none !important; }
	.no-mobile-4 { display: none !important; }
	.no-mobile-5 { display: none !important; }

}

/*  One time MFA code  */
:where([autocomplete=one-time-code]) {
  --otp-digits: 6; /* length */
  --otc-ls: 2.5ch;   /* 2ch */
  --otc-gap: 1.25; /* 1.25 */
  /* private consts */
  --_otp-bgsz: calc(var(--otc-ls) + 1ch);

  all: unset;
  background: linear-gradient(90deg, 
    var(--otc-bg, #EEE) calc(var(--otc-gap) * var(--otc-ls)),
    transparent 0
  ) 0 0 / var(--_otp-bgsz) 100%;
  caret-color: var(--otc-cc, #333);
  clip-path: inset(0% calc(var(--otc-ls) / 2) 0% 0%);
  font-family: ui-monospace, monospace;
  font-size: var(--otc-fz, 1.5em);
  inline-size: calc(var(--otc-digits) * var(--_otp-bgsz));
  letter-spacing: var(--otc-ls);
  padding-block: var(--otc-pb, 1ch);
  padding-inline-start: calc(((var(--otc-ls) - 1ch) / 2) * var(--otc-gap));
}



/* BARRE HORIZONTALE */

.navtop {
	background-color: var(--back-menu);
	/*height: 60px;*/
	/*width: 100%;*/
	border: 0;
}
.navtop div {
	display: flex;
	margin: 0 auto;
	/*width: 1000px;  mobile*/
	
	height: 100%;
}
.navtop div h1, .navtop div a {
	display: inline-flex;
	align-items: center;
}
.navtop div h1 {
	flex: 1;
	/*font-size: 24px;*/
	padding: 0;
	margin: 0;
	color: var(--text-menu-link);
	font-weight: normal;
	/* pour rester sur une ligne */
	overflow: hidden;
	white-space: nowrap;
}
.navtop div a {
	padding: 0 20px;
	text-decoration: none;
	color: var(--text-menu-link);
	font-weight: bold;
}
.navtop div a i {
	padding: 2px 8px 0 0;
}
.navtop div a:hover {
	color: var(--text-menu-hover);
}

/* MENU BURGER */

.menu {
	display: inline-block;
}
	
.menu > li {
	cursor: pointer;
	list-style: none;
}

/* Burger */
.menu > li i {
	font-size: 1.5em;
}
.menu > li i:hover {
	color: var(--text-menu-hover);
}

.menu > li i {
	color: var(--text-menu-link);
}	

/* Menu Popup */
.sub-menu {
	transform: scale(0); /* taille 0 */
	transform-origin: top center;
	transition: all 300ms ease-in-out;
	width: fit-content;  /* Largeur des lignes du menu */
}

.sub-menu li {
	padding: 10px 20px;
	transform: scale(0);
	transform-origin: top center;
	transition: all 300ms ease-in-out;
	list-style: none;
}

/* Bordures et fonds */
.sub-menu li {
	background: var(--back-menu);
	border-top: 1px solid var(--grisbleu);
	border-left: 1px solid var(--grisbleu);
	border-right: 1px solid var(--grisbleu);
}

.sub-menu li:last-child {
	border-bottom: 1px solid var(--grisbleu);
}
.sub-menu li:hover {
	background: var(--back-menu-hover);
}
/* Fait apparaitre le menu */
.menu > li:hover .sub-menu li {
	transform: scale(1);
}
.menu > li:hover .sub-menu {
	transform: scale(1);
}
/* Pour que le texte remplisse la case */
.sub-menu li a {
	width: 100%;
	text-wrap: nowrap;
}

/* LOGIN */

.login {
	/*width: 500px;*/
	background-color: var(--back-main);
	box-shadow: 0 0 9px 0 rgba(0, 0, 0, 0.3);
	margin: 100px auto;
}
.login h2 {
	text-align: center;
	padding: 20px 0 20px 0;
	border-bottom: 1px solid var(--border-light);
}

.login p {
	text-align: center;
	color: red;
	/*font-size: 14px;*/
}

.login a {
	text-decoration: none;
	color: var(--link);
	/*font-size: 14px;*/
}

.login a:hover {
	text-decoration: none;
	color: var(--link-hover);
}

.login form {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	padding-top: 20px;
}
.login form label {
	display: flex;
	justify-content: center;
	align-items: center;
	/*width: 50px;
	height: 50px;*/
	background-color: var(--back-menu);
	color: var(--text-menu-link);
}
.login form input[type="password"], .login form input[type="email"], .login form input[type="code"] {
	/*width: 410px;*/
	/*height: 50px;*/
	border: 1px solid var(--border-light);
	font-size: 1em;
	margin-bottom: 20px;
	padding: 0 15px;
}
.login form input[type="submit"] {
	width: 100%;
	padding: 15px;
	margin-top: 20px;
	background-color: var(--back-menu);
	border: 0;
	cursor: pointer;
	font-weight: bold;
	color: var(--text-menu-link);
	transition: background-color 0.2s;
	font-size: 1.2em;  
}
.login form input[type="submit"]:hover {
	background-color: var(--back-menu);
	transition: background-color 0.2s;
	color: var(--text-menu-hover);
	/*filter: brightness(90%);*/
}




/* CONTENU */

.content {
	/*min-width: 90%;  /* pour avoir un contenu fin centré */
	/*min-width: 600px;  /* pour avoir un contenu fin centré */
	/*margin: 0 auto;*/
	display: inline-block;
	text-align: left;
}

.content h2 {
	margin: 0;
	padding: 0 0 10px 0;
	/*padding: 25px 0;*/
	/*font-size: 22px;*/
	/*border-bottom: 1px solid #e0e0e3;  pas de ligne */
	/*color: var(--grisfonce);*/
}

.content h3 {
	margin: 0;
	padding: 0 0 20px 0;
	/*font-weight: normal;*/
	/*color: var(--grisfonce);*/
}

.content p {
	/*color: var(--grisfonce);*/
}

.content > p, .content > div {
	box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.1);
	margin: 25px 0;
	padding: 25px;
	background-color: var(--back-main);
}
.content > p table td, .content > div table td {
	padding: 5px;
}
.content > p table td:first-child, .content > div table td:first-child {
	/* 1ère colonne d'un tableau */
	/*font-weight: bold;*/
	/*color: #4a536e;*/
	/*padding-right: 15px;*/
}
.content > div p {
	padding: 5px 0;
	margin: 0 0 10px 0;
}


/* ACCUEIL */

.home table td:first-child {
	/* 1ère colonne d'un tableau de la page d'accueil */
	font-weight: bold;
	color: var(--text-h2);
	padding-right: 15px;
}

.home > div {
	/* 1ère DIV après la classe home */
	padding-top: 20px;
}


/* MENU DE SELECTION */


/* Pour que les elements soient alignés */
.inline {
	display: inline-block;
	margin-right:10px;
}

.spacin {
	margin-left:50px;
}

/* on limite pour privilegier des retours à la ligne */
.wrapit {
	/*max-width: 900px;*/
	text-wrap: wrap;
	word-wrap: break-word;
}

.fill {
	height:100%;
	width:100%;
}

input[type="search"] {
	border: 1px solid var(--border);
	box-sizing: border-box;
	/*vertical-align: middle;*/
}

.vue {
	/*width: 50px;*/
	text-align: right;
	border: 1px solid var(--border);
	margin: 2px 4px;
	padding: 4px;
	font-size: 1em;
	border-radius: 0.5vh;
	box-sizing: border-box;
}

/* la main pour tous les boutons */
button,input[type="button"] {
	cursor: pointer;
	font-size: 1em;
	margin: 2px 0;
	/*padding: 4px 10px;*/
	border: 1px solid var(--border);
	border-radius: 0.8vh;
	/*vertical-align: middle;*/
}

/* Boutons au debut du tableau */
.th-btn {
	text-align: center;
	padding: 5px;
}

.th-btn button {
	width: 90%;
}

.td-btn {
	text-align: center;
	width: 25px;
}

/* Par id */
#cancel {
	padding: 5px;
	margin: 10px 0;
}

/* Bouton actif / passif */

.actif {
	background-color: var(--back-btn-actif);
	font-weight: bold;
}

.actif:hover{
	filter: brightness(0.80);
}

.passif {
	background-color: var(--back-btn-passif);
	font-weight: bold;
}


/* Couleurs pour la table couleur */
.jaune { background-color: var(--table-jaune); }
.bleu, .blue { background-color: var(--table-bleu); }
.vert, .green { background-color: var(--table-vert); }
.orange { background-color: var(--table-orange); }
.rouge, .red { background-color: var(--table-rouge); }
.gris, .grey { background-color: var(--table-gris); }

/* Images sans liens grisée */
.disabled {
	opacity: 0.3;  
}

/* Selection des colonnes et des filtres  */ 
.select {
	/*box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.1);*/
	margin-top: 10px;
	padding: 10px;
	/*background-color: #1de18b;*/
	background: var(--back-filters);    /*  70% opaque green */ 
	/*opacity: 0.3;*/
}	


/* Zone de titre */
.title {
	display: flex;  /* espacement dynamique */
	justify-content: space-between;  /* pour repartir sur l'espace */
	max-width: 1150px; 
	padding-bottom: 5px;
}

.title a img:hover {
	box-shadow: 0 0 2px 1px var(--link-img);
}

input[type="image"]:hover {
	box-shadow: 0 0 2px 1px var(--link-img);
}


/* Barre outils */
.tools {
	display: inline-block;
	/*display: flex;  /* espacement dynamique */
	/*justify-content: space-between;  /* pour repartir sur l'espace */
	/*max-width: 1150px; */
	/*padding-bottom: 5px;*/
}

/* on reste aligné pour les div inferieur*/
.tools div {
	display: inline-block;
	/*justify-content: center;  /* Align horizontal */
	/*align-items: center;      /* Align vertital */
	/*margin: 0 5px;*/
}

.tools form {
	margin: 0 5px;
	display: inline-block;
	height: 100%;
	vertical-align: middle;  /* Aligner les forms */
}

.tools a {
	text-decoration: none;
}

/* Première ligne avant tableau */
.firstrow {
	display: flex;  /* espacement dynamique */
	justify-content: space-between;  /* pour repartir sur l'espace */
	/*max-width: 1150px; */
	padding-bottom: 5px;
}

/* on reste aligné pour les div inferieur*/
.firstrow div {
	display: flex;
	justify-content: center;  /* Align horizontal */
	align-items: center;      /* Align vertital */
	margin: 0 5px;
}

.firstrow form {
	margin: 0 5px;
}

.firstrow a {
	text-decoration: none;
}

.firstrow img {
	display: block; /* vert centré */
	/*width: 40px;*/
}

.firstrow a img:hover {
	box-shadow: 0 0 2px 1px var(--link-img);
}


/* TABLEAUX  */

table {
	border-collapse: collapse;
	/*width: 500px;*/
	width: 100%;
}


th {
	background-color: var(--back-menu); /*  Fond titre: Gris foncé  */
	border: 1px solid var(--back-menu);
	color: var(--text-menu-link);
	/*font-size: 13px;*/
	padding: 8px;
	text-align: left;
	white-space: nowrap;  /*  Pour forcer une seule ligne  */
}

th a {
	display: block;
	text-decoration:none;
	/*padding: 10px;*/
	color: var(--text-menu-link);
	font-weight: bold;
	/*font-size: 13px;*/
}

th a:hover {
	color: var(--text-menu-hover);
}

th a i {
	margin-left: 5px;
	color: rgba(255,255,255,0.4);
}
th i {
	margin-left: 5px;
	color: rgba(255,255,255,0.4);
}
td {
	padding: 10px;
	color: var(--text); 
	border: 1px solid var(--grisclair);
	/*white-space: nowrap;  /*  Pour forcer une seule ligne  */
	text-align: left;
}
td a {
	color: inherit;
	text-decoration: none;
}

/* Tri sur colonne */
tr .highlight {
  background-color: var(--jaune-pale); 
}


/*  Boutons du tableau de resultat  */

.btn-box {
	width: 25px;
}

.btn-btn {
	border: none;
	cursor: pointer;
	appearance: none;
	background-color: inherit;
	transition: transform 0.7s ease-in-out;
	padding: 0;
	margin: 0;
	vertical-align: middle;
}

.btn-btn:hover{
	filter: brightness(0.80);
	transform: rotate(360deg);

}

.btn-img {
	width: 25px;
	height: 25px;
	display: block;
	margin: 0 auto;
}


/* Pour un tableau en alternance de couleur */

.alter tr:nth-child(even) {
  background-color:  var(--alter-even);
}

.alter tr:nth-child(odd) {
  background-color: var(--alter-odd);
}

.alter tr:hover {
  background-color: var(--alter-hover);
}





/* Pour le bouttonhaut a gauche */
.topleft {
  position: absolute;
  left: 20px;
  top: 20px;
}





/* TEXTE OVER */

.tooltip-wrap {
  position: relative;
}
.tooltip-wrap .tooltip-content {
  display: none;
  position: absolute;
  bottom: 5%;
  left: 5%;
  border: thick double var(--border);
  background-color: var(--back-main);
  padding: .5em;
  min-width: 10rem;
}
.tooltip-wrap:hover .tooltip-content {
  display: block;
}

/* Pas de scroll */

textarea.no-scrollbars {
  overflow: hidden;
  width: 100%;
}



/* Dans la page SHOW */

.show-data {
	max-width:1200px; /* Pour ne pas etre trop trop large */
}


.show-media {
	width: 100%;
	/*max-height: 300px;*/
	object-fit: contain;
	z-index: -100;
	text-wrap: wrap;
	word-wrap: break-word;
}

.show-media img {
	width:100%;
	max-height:100%;
}

.show-media video {
	width:100%;
	max-height:100%;
}

.show-link {
	width: 100%;
	text-wrap: wrap;
	word-wrap: break-word;
	overflow: hidden;
	color: var(--link);
	filter: sepia(90%) hue-rotate(190deg) saturate(500%);
}

.show-link:hover {
	color: var(--link-hover);
	filter: none;
}