/* ============================================================
   SECTION 1 : NOUVEAU DESIGN MODERNE (À REMPLACER)
   ============================================================ */
body
{
	background-color: #f8f9fa; 
	font-family: 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
	margin: 0;
	padding: 0;
	color: #333;
	overflow-x: hidden;
}

h1
{
	text-align: center;
	margin-top: 40px;
	margin-bottom: 30px;
	font-weight: 700;
	color: #1a1a2e;
	
	/* On retire l'ancienne ombre */
	text-shadow: none;
}

/* Grille de cartes */
.container
{
	display: grid;
	
	/* 2 colonnes sur mobile */
	grid-template-columns: repeat(2, 1fr);
	
	gap: 20px;
	padding: 20px;
	max-width: 500px;
	margin: 0 auto;
	
	/* Espace pour le footer fixe */
	margin-bottom: 120px;
}

.shortcut
{
	background: #ffffff;
	border-radius: 15px;
	padding: 20px;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
	text-align: center;
	transition: transform 0.2s ease;
	border: 1px solid #eee;
	display: flex;
	flex-direction: column;
	align-items: center;
}

.shortcut:active
{
	transform: scale(0.95);
}

.shortcut img
{
	width: 50px;
	height: 50px;
	object-fit: contain;
	margin-bottom: 12px;
	border: none !important;
	box-shadow: none !important;
}

/* Style propre pour le texte sous les icônes */
.shortcut-label
{
	margin: 0;
	font-weight: 600;
	font-size: 14px;
	color: #1a1a2e;
	line-height: 1.3;
	
	/* Supprime le cadre bleu */
	background: none !important;
	
	border: none !important;
}

a
{
	color:#000000;
	outline: none;
	text-decoration: none;
	padding: 2px 1px 0;
}

a:link
{
	color: #000000;
}

a:visited
{
	color: #000000;
}

a:focus
{
	color: #000000;
}

a:hover
{
	color: #000000;
}

a:active
{
	color: #000000;
}

.txtborder
{
	background-color: #c5ddf6;
	border-radius: 5px;
	border: 2px solid#1c75c8;
	padding: 3px;
}

footer
{
	position: fixed;
	bottom: 0;
	left: 0;
	width: 100%;
	background-color: #ffffff;
	padding: 15px 0;
	box-shadow: 0 -4px 12px rgba(0,0,0,0.05);
	display: flex;
	flex-direction: column;
	align-items: center;
	z-index: 1000;
}

footer p.gras
{
	margin: 0;
	font-size: 12px;
	color: #666;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
}

footer a.mailto
{
	background-color: #3182ce !important;
	color: white !important;
	padding: 12px 0 !important;
	border-radius: 30px !important;
	font-weight: bold !important;
	width: 85% !important;
	max-width: 320px;
	text-align: center;
	text-decoration: none !important;
	border: none !important;
}

.mailto
{
	display: inline-block;
	margin-top: 10px;
	padding: 10px 20px;
	background-color: #44bcd8;
	color: white;
	text-decoration: none;
	border-radius: 5px;
	border: 2px solid#195e83;
	transition: background-color 0.3s ease;
	width: 100px;
	border-spacing: 40px;
}

/* Bouton d'installation PWA */
#btn-install-pwa
{
	display: none;
	position: fixed;
	bottom: 70px;
	right: 15px;
	background-color: #4a90d9 !important;
	color: white !important;
	padding: 12px 20px !important;
	border-radius: 30px !important;
	font-weight: bold !important;
	box-shadow: 0 4px 12px rgba(74, 144, 217, 0.4) !important;
	z-index: 1000;
	cursor: pointer;
	border: none !important;
	font-size: 14px;
}

#btn-install-pwa:hover
{
	background-color: #3a7bc8 !important;
	transform: translateY(-2px);
}

.gras
{
	font-weight : bold;
}

/* Styles pour le menu responsive */
.menu-icon
{
	/* Caché par défaut */
	display: none;
	
	flex-direction: column;
	justify-content: space-around;
	width: 30px;
	height: 24px;
	cursor: pointer;
	position: fixed;
	top: 10px;
	left: 10px;
	z-index: 1000;
}

.bar
{
	width: 100%;
	height: 3px;
	background-color: #333;
}

.menu
{
	display: none;
	position: fixed;
	top: 50px;
	left: 10px;
	background-color: #f8f8f8;
	border-radius: 5px;
	box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
	z-index: 1000;
}

.menu ul
{
	list-style: none;
	padding: 0;
	margin: 0;
}

.menu ul li
{
	padding: 10px;
	text-align: center;
}

.menu ul li a
{
	color: #333;
	text-decoration: none;
	font-size: 16px;
}

.menu.active
{
	display: block;
}

/* Centrer le conteneur principal */
.containerabout
{
	display: flex;
	justify-content: center;
	
	/* ← Changé de 'center' à 'flex-start' */
	align-items: flex-start;
	
	min-height: 100vh;
	margin: 0;
	padding: 0;
	background-color: #f0f0f0;
	margin-bottom: 80px;
}

.widthlilite
{
	max-width: 600px;
	min-height: 300px;
}

.about-section
{
	/* Largeur maximale du cadre */
	max-width: 600px;
	
	width: 100%;
	
	/* Hauteur minimale du cadre */
	min-height: 300px;
	
	/* Espacement intérieur */
	background-color: #f9f9f9;
	
	border-radius: 8px;
	box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
	text-align: center;
	display: flex;
	justify-content: center;
	align-items: center;
}

.about-content
{
	/* Ajoute un défilement si le texte dépasse */
	overflow: auto;
	
	/* Limite la hauteur du contenu */
	max-height: 100%;
}

.about-text
{
	/* Taille de police relative */
	font-size: 1rem;
	
	/* Espacement entre les lignes */
	line-height: 1.5;
	
	/* Marge uniquement en bas */
	margin: 0 0 10px 0;
	
	/* Permet la coupure des mots longs */
	word-wrap: break-word;
}

.about-text:last-child
{
	/* Ajoute un espace supplémentaire après la date */
	margin-top: 20px;
}

input, textarea, select, button
{
	/* Taille de police minimale pour éviter le zoom */
	font-size: 16px;
}

html, body
{
	/* Cache tout contenu qui dépasse la largeur */
	overflow-x: hidden;
}

.bgred
{
	background-color: #FF0000;
	color: #000000;
	font-weight: bold;
	font-size: 20px;
	text-align: center;
}

.bgred2
{
	background-color: #FF5555;
	color: #000000;
	font-weight: bold;
	font-size: 20px;
	text-align: center;
}

.bgred3
{
	background-color: #FF9494;
	color: #000000;
	font-size: 20px;
	text-align: center;
	font-weight: bold;
}

.bgred4
{
	background-color: #A60000;
	color: #000000;
	font-size: 20px;
	text-align: center;
	font-weight: bold;
}

.bgred5
{
	background-color: #CD3E3E;
	color: #000000;
	font-size: 20px;
	text-align: center;
	font-weight: bold;
}

.bgred6
{
	background-color: #C97171;
	color: #000000;
	font-size: 20px;
	text-align: center;
	font-weight: bold;
}

.bgred7
{
	background-color: #810000;
	color: #000000;
	font-size: 20px;
	text-align: center;
	font-weight: bold;
}

.bgpink
{
	background-color: #F1D1E9;
	color: #000000;
	font-size: 20px;
	text-align: center;
	font-weight: bold;
}

.bgyellow
{
	background-color: #ECE64D;
	color: #000000;
	font-size: 20px;
	text-align: center;
	font-weight: bold;
}

.bgyellow2
{
	background-color: #CFCA42;
	color: #000000;
	font-size: 20px;
	text-align: center;
	font-weight: bold;
}

.bgyellow3
{
	background-color: #CFCA42;
	color: #000000;
	font-size: 20px;
	text-align: center;
	font-weight: bold;
}

.bggrey
{
	background-color: #ADC1C1;
	font-weight: bold;
	font-size: 20px;
	color: #000000;
	text-align: center;
}

.bggrey2
{
	background-color: #799494;
	font-weight: bold;
	font-size: 20px;
	color: #000000;
	text-align: center;
}

.bgmauve
{
	background-color: #E357B7;
	font-weight: bold;
	font-size: 20px;
	color: #000000;
	text-align: center;
}

.bgmauve2
{
	background-color: #E4CDED;
	font-weight: bold;
	font-size: 20px;
	color: #000000;
	text-align: center;
}

.bgmauve3
{
	background-color: #BC4998;
	font-weight: bold;
	font-size: 20px;
	color: #000000;
	text-align: center;
}

.bgmauve4
{
	background-color: #B19FB8;
	font-weight: bold;
	font-size: 20px;
	color: #000000;
	text-align: center;
}

.bggreen
{
	background-color: #5EE357;
	color: #000000;
	font-weight: bold;
	font-size: 20px;
	text-align: center;
}

.bggreen2
{
	background-color: #4CBB46;
	color: #000000;
	font-weight: bold;
	font-size: 20px;
	text-align: center;
}

.bggreen3
{
	background-color: #8FFF8A;
	color: #000000;
	font-weight: bold;
	font-size: 20px;
	text-align: center;
}

.bggreen4
{
	background-color: #6DC169;
	color: #000000;
	font-weight: bold;
	font-size: 20px;
	text-align: center;
}

.bgorange
{
	background-color: #FFB64D;
	color: #000000;
	font-weight: bold;
	font-size: 20px;
	text-align: center;
}

.bgorange2
{
	background-color: #C68D3A;
	color: #000000;
	font-weight: bold;
	font-size: 20px;
	text-align: center;
}

.bgblue
{
	background-color: #52B6DB;
	color: #000000;
	font-weight: bold;
	font-size: 20px;
	text-align: center;
}

.bgblue2
{
	background-color: #3585A4;
	color: #000000;
	font-weight: bold;
	font-size: 20px;
	text-align: center;
}

.bgblue3
{
	background-color: #0EA7FF;
	color: #000000;
	font-weight: bold;
	font-size: 20px;
	text-align: center;
}

/* À ajouter en début de la section table */
table
{
	width: 100%;
	max-width: 100%;
	margin: 0 auto;
	border-collapse: collapse;
	table-layout: fixed;
}

table.bordercell
{
	border: none;
	background-color: white;
}

td, th
{
	padding: 8px;
	border: 1px solid black;
	text-align: center;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

input[type="number"]
{
	box-sizing: border-box;
	border: 1px solid black;
	border-right-color: #FFFFFF;
	border-bottom-color: #FFFFFF;
}

tr td input[type="number"]
{
	width: 90px;
	margin-left:auto;
}

td tt input[type="number"]
{
	width: 75px;
}

.container-table
{
	width: 100%;
	max-width: 100vw;
	margin: 20px auto;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

td input
{
	border: none;
	outline: none; 
}

div
{
	border: none;
}

.boutonshow
{
	border: 2px solid black;
	border-right-color: #000000;
	border-bottom-color: #000000;
	border-top-color: #FFFFFF;
	border-left-style: #FFFFFF;
	background-color: #717171;
	color: #FFFFFF;
}

.boutonhide
{
	border: 2px solid black;
	border-right-color: #000000;
	border-bottom-color: #000000;
	border-top-color: #FFFFFF;
	border-left-style: #FFFFFF;
	background-color: #2D2D2D;
	color: #FFFFFF;
}

/* Force la bordure droite sur la dernière colonne */
table.bordercell tr td:last-child,
table.bordercell tr th:last-child
{
	border-right: 1px solid black !important;
}

/* Contrôle précis des largeurs de colonnes */
table.bordercell tr td:nth-child(1),
table.bordercell tr th:nth-child(1)
{
	width: 30%;
	min-width: 30%;
}

table.bordercell tr td:nth-child(2),
table.bordercell tr th:nth-child(2)
{
	width: 30%;
	min-width: 30%;
}

table.bordercell tr td:nth-child(3),
table.bordercell tr th:nth-child(3)
{
	width: 10%;
	min-width: 10%;
}

table.bordercell tr td:nth-child(4),
table.bordercell tr th:nth-child(4)
{
	width: 20%;
	min-width: 20%;
}

table.bordercell tr td:nth-child(5),
table.bordercell tr th:nth-child(5)
{
	width: 20%;
	min-width: 20%;
}

/* Ajustement des inputs dans les cellules */
table.bordercell td input[type="number"]
{
	width: 100% !important;
	max-width: 100%;
	box-sizing: border-box;
}

/* Remplacez toutes les règles nth-child existantes par : */
table.bordercell td,
table.bordercell th
{
	min-width: 80px;
	width: auto !important;
	border: 1px solid black !important;
	padding: 8px;
	white-space: nowrap;
}

/* Largeurs spécifiques par colonne */
table.bordercell td:nth-child(1),
table.bordercell th:nth-child(1)
{ 
	width: 30%; 
	min-width: 120px;
}

table.bordercell td:nth-child(2),
table.bordercell th:nth-child(2)
{ 
	width: 30%; 
	min-width: 80px;
}

table.bordercell td:nth-child(3),
table.bordercell th:nth-child(3)
{ 
	width: 10%; 
	min-width: 40px;
}

.centerdiv
{
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}

/* Tableau pleine largeur */
.container-table.full-width
{
	width: 100vw !important;
	margin-left: calc(-50vw + 50%) !important;
	max-width: none !important;
}

.container-table.full-width table.bordercell
{
	width: 100% !important;
	max-width: none !important;
}

.container-table.normal-width
{
	width: auto !important;
	margin: 0 auto !important;
}

/* Premier tableau en pleine largeur */
h1 + .container-table
{
	width: 100vw;
	margin-left: calc(-50vw + 50%);
	margin-right: calc(-50vw + 50%);
}

h1 + .container-table table.bordercell
{
	width: 100%;
	min-width: 100%;
}

/* Couleurs de fond des lignes */
tr.bgred > td
{
	background-color: #FF0000;
}

tr.bgred2 > td
{
	background-color: #FF5555;
}

tr.bgred3 > td
{
	background-color: #FF9494;
}

tr.bgred4 > td
{
	background-color: #A60000;
}

tr.bgred5 > td
{
	background-color: #CD3E3E;
}

tr.bgred6 > td
{
	background-color: #C97171;
}

tr.bgred7 > td
{
	background-color: #810000;
}

tr.bgpink > td
{
	background-color: #F1D1E9;
}

tr.bgyellow > td
{
	background-color: #ECE64D;
}

tr.bgyellow2 > td
{
	background-color: #CFCA42;
}

tr.bgyellow3 > td
{
	background-color: #CFCA42;
}

tr.bggrey > td
{
	background-color: #ADC1C1;
}

tr.bggrey2 > td
{
	background-color: #799494;
}

tr.bgmauve > td
{
	background-color: #E357B7;
}

tr.bgmauve2 > td
{
	background-color: #E4CDED;
}

tr.bgmauve3 > td
{
	background-color: #BC4998;
}

tr.bgmauve4 > td
{
	background-color: #B19FB8;
}

tr.bggreen > td
{
	background-color: #5EE357;
}

tr.bggreen2 > td
{
	background-color: #4CBB46;
}

tr.bgorange > td
{
	background-color: #FFB64D;
}

tr.bgorange2 > td
{
	background-color: #C68D3A;
}

tr.bgblue > td
{
	background-color: #52B6DB;
}

tr.bgblue2 > td
{
	background-color: #3585A4;
}

/* 1. Correction du conteneur principal */
body > .container-table
{
	width: 100vw;
	margin-left: calc(-50vw + 50%);
	overflow: hidden;
	padding: 0 5px;
	box-sizing: border-box;
}

/* 2. Ajustement des tableaux */
body > .container-table table.bordercell
{
	width: calc(100% - 4px);
	min-width: calc(100vw - 10px);
	transform: translateX(1px);
	border: none;
}

/* 3. Correction spécifique pour le premier tableau */
body > h1 + .container-table
{
	margin-top: 20px;
}

/* 4. Garantie des bordures visibles */
table.bordercell td:first-child,
table.bordercell th:first-child
{
	border-left: 1px solid black !important;
}

table.bordercell td:last-child,
table.bordercell th:last-child
{
	border-right: 1px solid black !important;
}

.green_message-box
{
	display: flex;
	align-items: center;
	background-color: #65FF93;
	border: 1px solid #47C26B;
	color: #000000;
	padding: 10px 15px;
	max-width: 80%;
	box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
	border-radius: 5px;
	margin-left: auto;
	margin-right: auto;
}

.red_message-box
{
	display: flex;
	align-items: center;
	background-color: #FF696B;
	border: 1px solid #D05658;
	color: #000000;
	padding: 10px 15px;
	max-width: 80%;
	box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
	border-radius: 5px;
	margin-left: auto;
	margin-right: auto;
}

.orange_message-box
{
	display: flex;
	align-items: center;
	background-color: #FFAF69;
	border: 1px solid #D29158;
	color: #000000;
	padding: 10px 15px;
	max-width: 80%;
	box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
	border-radius: 5px;
	margin-left: auto;
	margin-right: auto;
}

.message-box img
{
	width: 15px;
	height: 15px;
	margin-right: 10px;
}

.message-text
{
	text-align: left;
}

@media (min-width: 768px)
{
	.container
	{
		grid-template-columns: repeat(4, 1fr);
		max-width: 900px;
	}
}

@media (max-width: 768px)
{
	.menu-icon
	{
		display: flex;
	}
	
	body > .container-table
	{
		width: 100%;
		margin-left: 0;
		padding: 0;
	}
	
	body > .container-table table.bordercell
	{
		min-width: calc(100% - 4px);
	}
}

/* ============================================================
   STYLES MODERNES POUR PSFSBV
   Ajouté pour psfsbv.tpl
   ============================================================ */

/* Container responsive */
.psfsbv-container
{
	max-width: 100%;
	width: 100%;
	margin: 0;
	padding: 10px;
	padding-bottom: 140px;
	box-sizing: border-box;
	overflow-x: hidden;
}

/* En-tête de page */
.psfsbv-header
{
	text-align: center;
	margin-bottom: 20px;
}

.psfsbv-header h1
{
	margin: 15px 0 0 0;
	font-size: 28px;
	font-weight: 700;
	color: #1a1a2e;
}

.psfsbv-icon
{
	width: 50px;
	height: 50px;
	object-fit: contain;
	display: block;
	margin: 0 auto;
	border: none !important;
	box-shadow: none !important;
}

/* Section responsive */
.form-section
{
	margin-bottom: 20px;
	width: 100%;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

/* Container de table responsive */
.form-section .container-table
{
	width: 100%;
	max-width: 100%;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	margin: 0;
	padding: 0;
}

/* Tableaux modernes */
.modern-table
{
	min-width: 100%;
	width: max-content;
	border-collapse: separate !important;
	border-spacing: 0;
	border-radius: 12px;
	overflow: hidden;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
	background: white;
}

/* En-têtes de tableau */
.modern-table thead tr.table-header th
{
	padding: 14px 12px;
	font-size: 16px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	border: none !important;
}

/* En-tête de tableau avec gradient moderne (style statsbv) */
.modern-table thead tr.table-header-gradient th
{
	background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
	color: white;
	padding: 14px 12px;
	font-size: 16px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	border: none !important;
}

/* Lignes de données */
.modern-table tbody tr.data-row td
{
	padding: 10px 8px;
	font-size: 15px;
	font-weight: 600;
	border-left: 1px solid rgba(0, 0, 0, 0.1) !important;
	border-right: 1px solid rgba(0, 0, 0, 0.1) !important;
	border-bottom: 1px solid rgba(255, 255, 255, 0.3) !important;
	border-top: none !important;
}

.modern-table tbody tr.data-row td:first-child
{
	border-left: none !important;
}

.modern-table tbody tr.data-row td:last-child
{
	border-right: none !important;
}

.modern-table tbody tr.data-row:last-of-type td
{
	border-bottom: none !important;
}

/* Ligne de total */
.modern-table tbody tr.total-row td
{
	padding: 12px 8px;
	font-size: 16px;
	font-weight: 700;
	border: none !important;
}

.modern-table tbody tr.total-row td.total-label
{
	text-align: right;
	padding-right: 15px;
	white-space: nowrap;
}

/* Colonnes spécifiques */
.modern-table td.denomination
{
	font-weight: 700;
	text-align: center;
	min-width: 70px;
	max-width: 90px;
	font-size: 13px;
	padding: 8px 4px;
	white-space: nowrap;
}

.modern-table td.multiplier
{
	font-weight: 600;
	text-align: center;
	min-width: 70px;
	max-width: 90px;
	font-size: 13px;
	padding: 8px 4px;
	white-space: nowrap;
}

.modern-table td.operator
{
	font-weight: 700;
	text-align: center;
	min-width: 30px;
	max-width: 40px;
	font-size: 16px;
	padding: 8px 2px;
}

.modern-table td.quantity-cell
{
	min-width: 80px;
	max-width: 100px;
	padding: 4px !important;
}

.modern-table td.total-cell
{
	min-width: 80px;
	max-width: 100px;
	padding: 4px !important;
}

/* Inputs modernes */
.modern-input
{
	width: 100%;
	max-width: 100%;
	padding: 10px 12px;
	font-size: 15px;
	font-weight: 600;
	text-align: center;
	border: 2px solid transparent !important;
	border-radius: 8px;
	transition: all 0.2s ease;
	box-sizing: border-box;
	outline: none !important;
}

.modern-table td.quantity-cell .modern-input,
.modern-table td.total-cell .modern-input
{
	font-size: 14px;
	padding: 8px 6px;
	min-width: 70px;
}

.modern-input:focus
{
	border-color: rgba(0, 0, 0, 0.2) !important;
	box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.05);
	transform: scale(1.02);
}

.modern-input::placeholder
{
	color: rgba(0, 0, 0, 0.3);
	font-weight: 500;
}

/* Champs en lecture seule */
.modern-input.total-field
{
	background-color: inherit !important;
	cursor: not-allowed;
	font-weight: 700;
	border-color: transparent !important;
}

.modern-input.total-field:focus
{
	box-shadow: none;
	transform: none;
}

/* Select moderne */
.modern-select
{
	width: 100%;
	padding: 10px 12px;
	font-size: 15px;
	font-weight: 600;
	text-align: center;
	border: 2px solid transparent !important;
}

/* ============================================================
   STYLES POUR LA PAGE CONTACT
   ============================================================ */

/* Container principal */
.contact-container
{
	max-width: 800px;
	margin: 0 auto;
	padding: 20px;
	padding-bottom: 140px;
}

/* En-tête de la page */
.contact-header
{
	text-align: center;
	margin-bottom: 40px;
}

.contact-icon
{
	font-size: 60px;
	margin-bottom: 15px;
	animation: bounce 2s infinite;
}

@keyframes bounce
{
	0%, 100%
	{
		transform: translateY(0);
	}
	50%
	{
		transform: translateY(-10px);
	}
}

.contact-header h1
{
	margin: 10px 0;
	color: #1a1a2e;
	font-size: 32px;
}

.contact-subtitle
{
	color: #666;
	font-size: 16px;
	margin-top: 10px;
}

/* Message box */
.message-box
{
	display: flex;
	align-items: flex-start;
	gap: 15px;
	padding: 20px;
	border-radius: 12px;
	margin-bottom: 30px;
	animation: slideIn 0.3s ease-out;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

@keyframes slideIn
{
	from
	{
		opacity: 0;
		transform: translateY(-20px);
	}
	
	to
	{
		opacity: 1;
		transform: translateY(0);
	}
}

.message-box.success
{
	background: linear-gradient(135deg, #d4edda 0%, #c3e6cb 100%);
	border: 2px solid #28a745;
	color: #155724;
}

.message-box.error
{
	background: linear-gradient(135deg, #f8d7da 0%, #f5c6cb 100%);
	border: 2px solid #dc3545;
	color: #721c24;
}

.message-icon
{
	font-size: 28px;
	flex-shrink: 0;
}

.message-content
{
	flex: 1;
	font-size: 15px;
	line-height: 1.6;
	font-weight: 500;
}

/* Formulaire */
.contact-form-wrapper
{
	background: white;
	border-radius: 16px;
	padding: 35px;
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
	margin-bottom: 40px;
}

.contact-form
{
	width: 100%;
}

.form-group
{
	margin-bottom: 25px;
	position: relative;
	transition: all 0.3s ease;
}

.form-group.focused
{
	transform: scale(1.01);
}

.form-label
{
	display: flex;
	align-items: center;
	gap: 8px;
	font-weight: 600;
	color: #333;
	margin-bottom: 10px;
	font-size: 15px;
}

.label-icon
{
	font-size: 18px;
}

.required
{
	color: #dc3545;
	font-weight: bold;
}

.form-control
{
	width: 100%;
	padding: 14px 16px;
	font-size: 16px;
	border: 2px solid #e0e0e0;
	border-radius: 10px;
	transition: all 0.3s ease;
	box-sizing: border-box;
	font-family: 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
}

.form-control:focus
{
	outline: none;
	border-color: #667eea;
	box-shadow: 0 0 0 4px rgba(102, 126, 234, 0.1);
}

.form-select
{
	background: white;
	cursor: pointer;
	appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23333' d='M6 9L1 4h10z'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 16px center;
	padding-right: 45px;
}

.form-textarea
{
	resize: vertical;
	min-height: 150px;
	line-height: 1.6;
}

.char-counter
{
	text-align: right;
	font-size: 13px;
	color: #999;
	margin-top: 8px;
	font-weight: 500;
}

/* Boutons */
.form-actions
{
	margin-top: 30px;
	text-align: center;
}

.btn
{
	padding: 16px 40px;
	font-size: 16px;
	font-weight: 600;
	border: none;
	border-radius: 10px;
	cursor: pointer;
	transition: all 0.3s ease;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.btn-primary
{
	background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
	color: white;
}

.btn-primary:hover
{
	background: linear-gradient(135deg, #764ba2 0%, #667eea 100%);
	transform: translateY(-2px);
	box-shadow: 0 6px 20px rgba(102, 126, 234, 0.4);
}

.btn-primary:active
{
	transform: translateY(0);
}

.btn-icon
{
	font-size: 20px;
}

/* Informations de contact */
.contact-info
{
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 20px;
	margin-top: 40px;
}

.info-card
{
	background: white;
	border-radius: 12px;
	padding: 25px;
	display: flex;
	align-items: center;
	gap: 20px;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06);
	transition: all 0.3s ease;
}

.info-card:hover
{
	transform: translateY(-5px);
	box-shadow: 0 8px 20px rgba(102, 126, 234, 0.15);
}

.info-icon
{
	font-size: 40px;
	flex-shrink: 0;
}

.info-content h3
{
	margin: 0 0 8px 0;
	font-size: 16px;
	color: #333;
	font-weight: 600;
}

.info-content p
{
	margin: 0;
	color: #666;
	font-size: 14px;
}

/* Responsive */
@media (max-width: 768px)
{
	.contact-container
	{
		padding: 15px;
	}
	
	.contact-form-wrapper
	{
		padding: 25px 20px;
	}
	
	.contact-header h1
	{
		font-size: 26px;
	}
	
	.contact-icon
	{
		font-size: 50px;
	}
	
	.info-card
	{
		flex-direction: column;
		text-align: center;
	}
}

/* Styles pour la légende */
.legend-box
{
	background: #e3f2fd;
	border-left: 4px solid #2196F3;
	border-radius: 5px;
	padding: 12px 15px;
	margin: 10px 0;
}

.legend-item
{
	display: inline-block;
	margin-right: 20px;
	margin-bottom: 5px;
}

/* Styles pour les tableaux à double comptage */
.double-count-table .sub-header th
{
	background: #ffcdd2 !important;
	font-size: 0.9em;
	padding: 8px 5px;
}

.wide-width
{
	max-width: 900px;
}

.recap-table tbody td
{
	text-align: center;
	padding: 10px;
	font-weight: 600;
}

.recap-table .recap-value
{
	background: #fff9c4;
}

.recap-table .recap-count
{
	background: #e1f5fe;
}

.recap-table .recap-total
{
	background: #c8e6c9;
}

/* Styles pour les champs désactivés avec croix rouge */
/* La cellule elle-même */
.quantity-cell.field-disabled
{
	text-align: center;
	vertical-align: middle;
	position: relative;
}

/* ============================================
   CELLULES désactivées par couleur de ligne
   ============================================ */
/* Lignes vertes (bggreen3 = #8FFF8A) -> vert sombre (#56a852) */
tr.bggreen3 td.quantity-cell.field-disabled
{
	background-color: #56a852 !important;
}

/* Lignes jaunes (bgyellow = #ECE64D) -> jaune sombre (#8a872c) */
tr.bgyellow td.quantity-cell.field-disabled
{
	background-color: #8a872c !important;
}

/* Lignes jaunes 2 (bgyellow2 = #CFCA42) -> jaune plus sombre (#7a7726) */
tr.bgyellow2 td.quantity-cell.field-disabled
{
	background-color: #7a7726 !important;
}

/* Lignes jaunes 3 (bgyellow3 = #CFCA42) -> jaune plus sombre (#7a7726) */
tr.bgyellow3 td.quantity-cell.field-disabled
{
	background-color: #7a7726 !important;
}

/* Lignes rouges (bgred = #FF0000) -> rouge sombre (#990000) */
tr.bgred td.quantity-cell.field-disabled
{
	background-color: #990000 !important;
}

/* Lignes rouges 2 (bgred2 = #FF5555) -> rouge sombre (#b33333) */
tr.bgred2 td.quantity-cell.field-disabled
{
	background-color: #b33333 !important;
}

/* Lignes rouges 3 (bgred3 = #FF9494) -> rouge moyen (#cc5555) */
tr.bgred3 td.quantity-cell.field-disabled
{
	background-color: #cc5555 !important;
}

/* Lignes rouges 4 (bgred4 = #A60000) -> rouge très sombre (#660000) */
tr.bgred4 td.quantity-cell.field-disabled
{
	background-color: #660000 !important;
}

/* Lignes rouges 5 (bgred5 = #CD3E3E) -> rouge sombre (#8a2222) */
tr.bgred5 td.quantity-cell.field-disabled
{
	background-color: #8a2222 !important;
}

/* Lignes rouges 6 (bgred6 = #C97171) -> rouge moyen (#a85555) */
tr.bgred6 td.quantity-cell.field-disabled
{
	background-color: #a85555 !important;
}

/* Lignes rouges 7 (bgred7 = #810000) -> rouge très sombre (#4d0000) */
tr.bgred7 td.quantity-cell.field-disabled
{
	background-color: #4d0000 !important;
}

/* Lignes bleues (bgblue = #52B6DB) -> bleu sombre (#2a6a8a) */
tr.bgblue td.quantity-cell.field-disabled
{
	background-color: #2a6a8a !important;
}

/* Lignes bleues 2 (bgblue2 = #3585A4) -> bleu sombre (#1f4d5f) */
tr.bgblue2 td.quantity-cell.field-disabled
{
	background-color: #1f4d5f !important;
}

/* Lignes bleues 3 (bgblue3 = #0EA7FF) -> bleu moyen (#0a6aa8) */
tr.bgblue3 td.quantity-cell.field-disabled
{
	background-color: #0a6aa8 !important;
}

/* Lignes grises (bggrey = #ADC1C1) -> gris sombre (#6a7a7a) */
tr.bggrey td.quantity-cell.field-disabled
{
	background-color: #6a7a7a !important;
}

/* Lignes grises 2 (bggrey2 = #799494) -> gris sombre (#4a5a5a) */
tr.bggrey2 td.quantity-cell.field-disabled
{
	background-color: #4a5a5a !important;
}

/* Lignes mauves (bgmauve = #E357B7) -> mauve sombre (#a8338a) */
tr.bgmauve td.quantity-cell.field-disabled
{
	background-color: #a8338a !important;
}

/* Lignes mauves 2 (bgmauve2 = #E4CDED) -> mauve moyen (#b88ab8) */
tr.bgmauve2 td.quantity-cell.field-disabled
{
	background-color: #b88ab8 !important;
}

/* Lignes mauves 3 (bgmauve3 = #BC4998) -> mauve sombre (#8a336a) */
tr.bgmauve3 td.quantity-cell.field-disabled
{
	background-color: #8a336a !important;
}

/* Lignes mauves 4 (bgmauve4 = #B19FB8) -> mauve moyen (#7a6a8a) */
tr.bgmauve4 td.quantity-cell.field-disabled
{
	background-color: #7a6a8a !important;
}

/* Lignes orange (bgorange = #FFB64D) -> orange sombre (#cc8a33) */
tr.bgorange td.quantity-cell.field-disabled
{
	background-color: #cc8a33 !important;
}

/* Lignes orange 2 (bgorange2 = #C68D3A) -> orange sombre (#8a6226) */
tr.bgorange2 td.quantity-cell.field-disabled
{
	background-color: #8a6226 !important;
}

/* ============================================
   INPUTS dans les cellules désactivées
   ============================================ */
/* Inputs dans cellules désactivées - fond transparent pour voir la couleur de la cellule */
tr.bggreen3 td.quantity-cell.field-disabled .modern-input,
tr.bgyellow td.quantity-cell.field-disabled .modern-input,
tr.bgyellow2 td.quantity-cell.field-disabled .modern-input,
tr.bgyellow3 td.quantity-cell.field-disabled .modern-input,
tr.bgred td.quantity-cell.field-disabled .modern-input,
tr.bgred2 td.quantity-cell.field-disabled .modern-input,
tr.bgred3 td.quantity-cell.field-disabled .modern-input,
tr.bgred4 td.quantity-cell.field-disabled .modern-input,
tr.bgred5 td.quantity-cell.field-disabled .modern-input,
tr.bgred6 td.quantity-cell.field-disabled .modern-input,
tr.bgred7 td.quantity-cell.field-disabled .modern-input,
tr.bgblue td.quantity-cell.field-disabled .modern-input,
tr.bgblue2 td.quantity-cell.field-disabled .modern-input,
tr.bgblue3 td.quantity-cell.field-disabled .modern-input,
tr.bggrey td.quantity-cell.field-disabled .modern-input,
tr.bggrey2 td.quantity-cell.field-disabled .modern-input,
tr.bgmauve td.quantity-cell.field-disabled .modern-input,
tr.bgmauve2 td.quantity-cell.field-disabled .modern-input,
tr.bgmauve3 td.quantity-cell.field-disabled .modern-input,
tr.bgmauve4 td.quantity-cell.field-disabled .modern-input,
tr.bgorange td.quantity-cell.field-disabled .modern-input,
tr.bgorange2 td.quantity-cell.field-disabled .modern-input
{
	background-color: transparent !important;
}

.red-cross
{
	font-size: 24px;
	color: #d32f2f;
	display: inline-block;
	font-weight: bold;
}

/* Styles généraux */
body
{
	font-family: Arial, sans-serif;
	padding: 20px;
	background: #f5f5f5;
}

h1
{
	color: #333;
	text-align: center;
	margin: 20px 0;
}

/* Carte utilisateur */
.user-info-card
{
	max-width: 600px;
	margin: 20px auto;
	background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
	border-radius: 12px;
	padding: 25px;
	display: flex;
	align-items: center;
	gap: 20px;
	box-shadow: 0 4px 15px rgba(102, 126, 234, 0.3);
	color: white;
}

.user-avatar
{
	font-size: 60px;
	background: rgba(255, 255, 255, 0.2);
	width: 80px;
	height: 80px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
}

.user-details h2
{
	margin: 0 0 10px 0;
	font-size: 24px;
}

.user-details .user-cp
{
	margin: 0;
	opacity: 0.9;
	font-size: 14px;
}

/* Instructions */
.instructions
{
	background: #e3f2fd;
	border-left: 4px solid #2196F3;
	border-radius: 5px;
	padding: 12px 15px;
	margin: 15px auto 25px auto;
	color: #1565c0;
	max-width: 1200px;
}

/* Messages */
.message
{
	padding: 15px;
	margin: 15px auto;
	border-radius: 5px;
	max-width: 1200px;
	position: relative;
	animation: slideDown 0.3s ease-out;
}

@keyframes slideDown
{
	from
	{
		opacity: 0;
		transform: translateY(-20px);
	}
			
	to
	{
		opacity: 1;
		transform: translateY(0);
	}
}

.message.success
{
	background: #d4edda;
	color: #155724;
	border: 1px solid #c3e6cb;
}

.message.error
{
	background: #f8d7da;
	color: #721c24;
	border: 1px solid #f5c6cb;
}

.close-msg
{
	position: absolute;
	right: 10px;
	top: 10px;
	cursor: pointer;
	font-size: 20px;
	font-weight: bold;
}

/* Filtre de période */
.filter-container
{
	display: flex;
	justify-content: center;
	gap: 20px;
	margin: 20px 0;
	flex-wrap: wrap;
	align-items: center;
}

.filter-group
{
	display: flex;
	align-items: center;
	gap: 10px;
}

.filter-group label
{
	font-weight: 600;
	color: #333;
}

.filter-group select
{
	padding: 8px 12px;
	border: 2px solid #e0e0e0;
	border-radius: 6px;
	font-size: 14px;
	background: white;
	cursor: pointer;
	transition: border-color 0.3s;
}
		
.filter-group select:focus
{
	outline: none;
	border-color: #667eea;
}

.btn-refresh
{
	padding: 8px 20px;
	background: linear-gradient(135deg, #667eea, #764ba2);
	color: white;
	border: none;
	border-radius: 6px;
	cursor: pointer;
	font-size: 14px;
	font-weight: 600;
	transition: all 0.3s;
}

.btn-refresh:hover
{
	background: linear-gradient(135deg, #764ba2, #667eea);
	transform: translateY(-2px);
	box-shadow: 0 4px 8px rgba(102, 126, 234, 0.3);
}

/* Badges */
.badge-cp
{
	display: inline-block;
	background: rgba(255, 255, 255, 0.3);
	color: white;
	padding: 4px 10px;
	border-radius: 4px;
	font-size: 13px;
	font-family: monospace;
	font-weight: 600;
}

/* Contenu des stats */
.loading
{
	text-align: center;
	padding: 60px 40px;
}

.spinner
{
	border: 4px solid #f3f3f3;
	border-top: 4px solid #667eea;
	border-radius: 50%;
	width: 50px;
	height: 50px;
	animation: spin 1s linear infinite;
	margin: 0 auto 20px;
}

@keyframes spin
{
	0%
	{
		transform: rotate(0deg);
	}
	
	100%
	{
		transform: rotate(360deg);
	}
}
		
.stats-grid
{
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
	gap: 30px;
	margin: 30px auto;
	max-width: 1200px;
}

.stat-card
{
	background: white;
	border: 2px solid #e0e0e0;
	border-radius: 12px;
	padding: 25px;
	text-align: center;
	box-shadow: 0 2px 8px rgba(0,0,0,0.1);
	transition: transform 0.3s, box-shadow 0.3s;
}

.stat-card:hover
{
	transform: translateY(-5px);
	box-shadow: 0 8px 20px rgba(102, 126, 234, 0.2);
}

.stat-card h3
{
	margin: 0 0 20px 0;
	color: #667eea;
	font-size: 18px;
}

.chart-container
{
	position: relative;
	width: 200px;
	height: 200px;
	margin: 0 auto 20px;
}

.stat-number
{
	font-size: 48px;
	font-weight: bold;
	color: #667eea;
	margin: 10px 0;
}

.stat-label
{
	font-size: 14px;
	color: #666;
	margin-top: 10px;
}

.details-section
{
	margin: 30px auto;
	max-width: 1200px;
	background: white;
	border-radius: 12px;
	padding: 25px;
	box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}

.details-section h3
{
	color: #667eea;
	margin-bottom: 20px;
	font-size: 20px;
}

.details-table
{
	width: 100%;
	border-collapse: collapse;
	margin-top: 10px;
}

.details-table th,
.details-table td
{
	padding: 12px;
	text-align: left;
	border-bottom: 1px solid #e0e0e0;
}

.details-table th
{
	background: #f5f5f5;
	font-weight: 600;
	color: #333;
	position: sticky;
	top: 0;
}

.details-table tbody tr
{
	transition: background-color 0.2s;
}

.details-table tbody tr:hover
{
	background-color: #f5f5f5;
}

.table-container
{
	max-height: 400px;
	overflow-y: auto;
	border: 1px solid #e0e0e0;
	border-radius: 8px;
}

.badge-divergence
{
	display: inline-block;
	padding: 4px 10px;
	border-radius: 4px;
	font-size: 12px;
	font-weight: 600;
}

.badge-divergence.ok
{
	background: #d4edda;
	color: #155724;
}

.badge-divergence.warning
{
	background: #fff3cd;
	color: #856404;
}

.no-data
{
	text-align: center;
	padding: 60px 40px;
	color: #666;
	font-size: 18px;
}

.no-data p
{
	margin: 10px 0;
}

/* Styles généraux */
body
{
	font-family: Arial, sans-serif;
	padding: 20px;
	background: #f5f5f5;
}

h1
{
color: #333;
text-align: center;
margin: 20px 0;
}

/* Carte utilisateur */
.user-info-card
{
	max-width: 600px;
	margin: 20px auto;
	background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
	border-radius: 12px;
	padding: 25px;
	display: flex;
	align-items: center;
	gap: 20px;
	box-shadow: 0 4px 15px rgba(102, 126, 234, 0.3);
	color: white;
}

.user-avatar
{
	font-size: 60px;
	background: rgba(255, 255, 255, 0.2);
	width: 80px;
	height: 80px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
}

.user-details h2
{
	margin: 0 0 10px 0;
	font-size: 24px;
}

.user-details .user-cp
{
	margin: 0;
	opacity: 0.9;
	font-size: 14px;
}

/* Instructions */
.instructions
{
	background: #e3f2fd;
	border-left: 4px solid #2196F3;
	border-radius: 5px;
	padding: 12px 15px;
	margin: 15px auto 25px auto;
	color: #1565c0;
	max-width: 1200px;
}

/* Messages */
.message
{
	padding: 15px;
	margin: 15px auto;
	border-radius: 5px;
	max-width: 1200px;
	position: relative;
	animation: slideDown 0.3s ease-out;
}

@keyframes slideDown
{
	from
	{
		opacity: 0;
		transform: translateY(-20px);
	}
	
	to
	{
		opacity: 1;
		transform: translateY(0);
	}
}

.message.success
{
	background: #d4edda;
	color: #155724;
	border: 1px solid #c3e6cb;
}

.message.error
{
	background: #f8d7da;
	color: #721c24;
	border: 1px solid #f5c6cb;
}

.close-msg
{
	position: absolute;
	right: 10px;
	top: 10px;
	cursor: pointer;
	font-size: 20px;
	font-weight: bold;
}

/* Filtre de période */
.filter-container
{
	display: flex;
	justify-content: center;
	gap: 20px;
	margin: 20px 0;
	flex-wrap: wrap;
	align-items: center;
}

.filter-group
{
	display: flex;
	align-items: center;
	gap: 10px;
}
		
.filter-group label
{
	font-weight: 600;
	color: #333;
}

.filter-group select
{
	padding: 8px 12px;
	border: 2px solid #e0e0e0;
	border-radius: 6px;
	font-size: 14px;
	background: white;
	cursor: pointer;
	transition: border-color 0.3s;
}

.filter-group select:focus
{
	outline: none;
	border-color: #667eea;
}

.btn-refresh
{
	padding: 8px 20px;
	background: linear-gradient(135deg, #667eea, #764ba2);
	color: white;
	border: none;
	border-radius: 6px;
	cursor: pointer;
	font-size: 14px;
	font-weight: 600;
	transition: all 0.3s;
}

.btn-refresh:hover
{
	background: linear-gradient(135deg, #764ba2, #667eea);
	transform: translateY(-2px);
	box-shadow: 0 4px 8px rgba(102, 126, 234, 0.3);
}

/* Badges */
.badge-cp
{
	display: inline-block;
	background: rgba(255, 255, 255, 0.3);
	color: white;
	padding: 4px 10px;
	border-radius: 4px;
	font-size: 13px;
	font-family: monospace;
	font-weight: 600;
}

/* Contenu des stats */
.loading
{
	text-align: center;
	padding: 60px 40px;
}

.spinner
{
	border: 4px solid #f3f3f3;
	border-top: 4px solid #667eea;
	border-radius: 50%;
	width: 50px;
	height: 50px;
	animation: spin 1s linear infinite;
	margin: 0 auto 20px;
}

@keyframes spin
{
	0%
	{
		transform: rotate(0deg);
	}
	
	100%
	{
		transform: rotate(360deg);
	}
}

.stats-grid
{
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
	gap: 30px;
	margin: 30px auto;
	max-width: 1200px;
}

.stat-card
{
	background: white;
	border: 2px solid #e0e0e0;
	border-radius: 12px;
	padding: 25px;
	text-align: center;
	box-shadow: 0 2px 8px rgba(0,0,0,0.1);
	transition: transform 0.3s, box-shadow 0.3s;
}

.stat-card:hover
{
	transform: translateY(-5px);
	box-shadow: 0 8px 20px rgba(102, 126, 234, 0.2);
}

.stat-card h3
{
	margin: 0 0 20px 0;
	color: #667eea;
	font-size: 18px;
}

.chart-container
{
	position: relative;
	width: 200px;
	height: 200px;
	margin: 0 auto 20px;
}

.stat-number
{
	font-size: 48px;
	font-weight: bold;
	color: #667eea;
	margin: 10px 0;
}

.stat-label
{
	font-size: 14px;
	color: #666;
	margin-top: 10px;
}

.details-section
{
	margin: 30px auto;
	max-width: 1200px;
	background: white;
	border-radius: 12px;
	padding: 25px;
	box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}

.details-section h3
{
	color: #667eea;
	margin-bottom: 20px;
	font-size: 20px;
}

.details-table
{
	width: 100%;
	border-collapse: collapse;
	margin-top: 10px;
}

.details-table th,
.details-table td
{
	padding: 12px;
	text-align: left;
	border-bottom: 1px solid #e0e0e0;
}

.details-table th
{
	background: #f5f5f5;
	font-weight: 600;
	color: #333;
	position: sticky;
	top: 0;
}

.details-table tbody tr
{
	transition: background-color 0.2s;
}

.details-table tbody tr:hover
{
	background-color: #f5f5f5;
}

.table-container
{
	max-height: 400px;
	overflow-y: auto;
	border: 1px solid #e0e0e0;
	border-radius: 8px;
}

.badge-divergence
{
	display: inline-block;
	padding: 4px 10px;
	border-radius: 4px;
	font-size: 12px;
	font-weight: 600;
}

.badge-divergence.ok
{
	background: #d4edda;
	color: #155724;
}

.badge-divergence.warning
{
	background: #fff3cd;
	color: #856404;
}

.no-data
{
	text-align: center;
	padding: 60px 40px;
	color: #666;
	font-size: 18px;
}

.no-data p
{
	margin: 10px 0;
}