/* Espace CSE (/admincse/) : couleurs et typographie du site (kit Elementor). */
:root {
	--hcse-rouge: #EC1117;
	--hcse-rouge-fonce: #C70D12;
	--hcse-bleu: #1F5B9B;
	--hcse-bleu-fonce: #174A80;
	--hcse-bleu-jc: #244296;
	--hcse-fond: #F6F2F1;
	--hcse-blanc: #fff;
	--hcse-texte: #1d1d1f;
	--hcse-gris: #5f5f66;
	--hcse-bord: #e8e2df;
	--hcse-bord-fort: #cdc5c1;
	--hcse-rayon: 10px;
	--hcse-ombre: 0 1px 2px rgba(29, 29, 31, .05), 0 6px 22px rgba(31, 91, 155, .07);
	--hcse-police: Poppins, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
.hcse [hidden] { display: none !important; }

html { -webkit-text-size-adjust: 100%; }
body.hcse {
	margin: 0;
	min-height: 100vh;
	display: flex;
	flex-direction: column;
	background: var(--hcse-fond);
	color: var(--hcse-texte);
	font-family: var(--hcse-police);
	font-size: 15px;
	line-height: 1.55;
}
.hcse a { color: var(--hcse-bleu); }
.hcse img { max-width: 100%; height: auto; }
.hcse h1, .hcse h2 { line-height: 1.2; }
.hcse sup { font-size: .7em; line-height: 0; }
.hcse :focus-visible { outline: 3px solid rgba(31, 91, 155, .45); outline-offset: 2px; }

.hcse-masque {
	position: absolute !important;
	width: 1px; height: 1px;
	margin: -1px; padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}
.hcse-evitement {
	position: absolute;
	left: 16px; top: -60px;
	z-index: 10;
	padding: 10px 16px;
	background: var(--hcse-bleu);
	color: #fff !important;
	font-weight: 600;
	border-radius: 0 0 6px 6px;
}
.hcse-evitement:focus { top: 0; }

/* En-tête ---------------------------------------------------------------- */
.hcse-bandeau-admin {
	padding: 8px 16px;
	background: var(--hcse-bleu-jc);
	color: #fff;
	font-size: 13px;
	text-align: center;
}
.hcse-bandeau-admin a { color: #fff; font-weight: 600; margin-left: 6px; }
.hcse-entete { background: var(--hcse-blanc); border-bottom: 1px solid var(--hcse-bord); }
.hcse-entete__dedans {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	max-width: 1120px;
	min-height: 66px;
	margin: 0 auto;
	padding: 0 24px;
}
.hcse-entete__marque { display: flex; align-items: center; text-decoration: none; }
.hcse-entete__marque img { display: block; width: 148px; height: auto; }
.hcse-entete__marque span {
	margin-left: 14px;
	padding-left: 14px;
	border-left: 1px solid var(--hcse-bord-fort);
	color: var(--hcse-bleu);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .1em;
	text-transform: uppercase;
	white-space: nowrap;
}
.hcse-entete__site { font-size: 14px; font-weight: 500; text-decoration: none; }
.hcse-entete__site:hover { text-decoration: underline; }
.hcse-menu { display: flex; align-items: center; gap: 6px; }
.hcse-menu a {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 8px 10px;
	border-radius: 6px;
	color: var(--hcse-bleu);
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
}
.hcse-menu a:hover { background: var(--hcse-fond); }
.hcse-menu a[aria-current="page"] { color: var(--hcse-rouge); }
.hcse-icone { flex: none; }

/* Contenu ---------------------------------------------------------------- */
.hcse-contenu {
	flex: 1 0 auto;
	width: 100%;
	max-width: 1120px;
	margin: 0 auto;
	padding: 40px 24px 64px;
}
.hcse-titre-page {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 24px;
}
.hcse-titre-page h1 {
	margin: 0;
	color: var(--hcse-bleu);
	font-size: 30px;
	font-weight: 800;
	text-transform: uppercase;
}
.hcse-retour { margin: 0 0 18px; }
.hcse-retour a { font-size: 14px; font-weight: 600; text-decoration: none; }
.hcse-retour a:hover { text-decoration: underline; }
.hcse-note { margin: 0 0 12px; color: var(--hcse-gris); font-size: 13px; }
.hcse-vide { margin: 0; padding: 22px 0; color: var(--hcse-gris); text-align: center; }

/* Boutons ---------------------------------------------------------------- */
.hcse-bouton {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 46px;
	padding: 0 22px;
	border: 2px solid transparent;
	border-radius: 4px;
	font-family: inherit;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .05em;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	text-transform: uppercase;
	white-space: nowrap;
	cursor: pointer;
	transition: background-color .15s, border-color .15s, color .15s;
}
.hcse-bouton--plein { background: var(--hcse-rouge); border-color: var(--hcse-rouge); color: #fff !important; }
.hcse-bouton--plein:hover { background: var(--hcse-rouge-fonce); border-color: var(--hcse-rouge-fonce); }
.hcse-bouton--bleu { background: var(--hcse-bleu); border-color: var(--hcse-bleu); color: #fff !important; }
.hcse-bouton--bleu:hover { background: var(--hcse-bleu-fonce); border-color: var(--hcse-bleu-fonce); }
.hcse-bouton--bleu.est-copie { background: #1e7a46; border-color: #1e7a46; }
.hcse-bouton--contour { background: transparent; border-color: var(--hcse-bleu); color: var(--hcse-bleu) !important; }
.hcse-bouton--contour:hover { background: var(--hcse-bleu); color: #fff !important; }
.hcse-bouton--large { width: 100%; min-height: 52px; font-size: 14px; }

/* Formulaires ------------------------------------------------------------ */
.hcse-champ { margin-bottom: 18px; }
.hcse-champ label { display: block; margin-bottom: 6px; font-size: 14px; font-weight: 600; }
.hcse input[type="text"],
.hcse input[type="email"],
.hcse input[type="password"],
.hcse input[type="search"] {
	width: 100%;
	height: 48px;
	padding: 0 14px;
	border: 1px solid var(--hcse-bord-fort);
	border-radius: 6px;
	background: var(--hcse-blanc);
	color: var(--hcse-texte);
	font-family: inherit;
	font-size: 16px;
	transition: border-color .15s, box-shadow .15s;
}
.hcse input:focus { outline: none; border-color: var(--hcse-bleu); box-shadow: 0 0 0 3px rgba(31, 91, 155, .18); }
.hcse-mdp { position: relative; }
.hcse-mdp input { padding-right: 96px !important; }
.hcse-mdp__voir {
	position: absolute;
	top: 50%;
	right: 6px;
	transform: translateY(-50%);
	padding: 8px 10px;
	border: 0;
	border-radius: 4px;
	background: none;
	color: var(--hcse-bleu);
	font-family: inherit;
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
}
.hcse-mdp__voir:hover { background: var(--hcse-fond); }
.hcse-regle { margin: 8px 0 0; color: var(--hcse-gris); font-size: 13px; }
.hcse-regle.est-ok { color: #1e7a46; }
.hcse-case { display: flex; align-items: center; gap: 10px; margin: 4px 0 22px; font-size: 14px; cursor: pointer; }
.hcse-case input { width: 18px; height: 18px; margin: 0; accent-color: var(--hcse-bleu); }

.hcse-avis { margin: 0 0 20px; padding: 12px 14px; border-left: 4px solid; border-radius: 6px; font-size: 14px; }
.hcse-avis--erreur { background: #fdecec; border-color: var(--hcse-rouge); color: #8a0c10; }
.hcse-avis--succes { background: #e7f4ec; border-color: #1e7a46; color: #14532d; }
.hcse-avis--info { background: #e9f0f8; border-color: var(--hcse-bleu); color: var(--hcse-bleu-fonce); }

/* Connexion, mot de passe, messages -------------------------------------- */
.hcse-auth { max-width: 440px; margin: 16px auto 0; }
.hcse-auth__carte {
	padding: 40px;
	border-radius: var(--hcse-rayon);
	background: var(--hcse-blanc);
	box-shadow: var(--hcse-ombre);
}
.hcse-auth__titre {
	margin: 0 0 6px;
	color: var(--hcse-bleu);
	font-size: 28px;
	font-weight: 800;
	text-transform: uppercase;
}
.hcse-auth__intro { margin: 0 0 24px; color: var(--hcse-gris); }
.hcse-auth__intro strong { color: var(--hcse-texte); overflow-wrap: anywhere; }
.hcse-auth__carte > p:not([class]) { margin: 0 0 18px; color: var(--hcse-gris); }
.hcse-auth__lien { margin: 20px 0 0; text-align: center; }
.hcse-auth__lien a { font-size: 14px; font-weight: 600; text-decoration: none; }
.hcse-auth__lien a:hover { text-decoration: underline; }
.hcse-auth__aide { margin: 24px 6px 0; color: var(--hcse-gris); font-size: 14px; }
.hcse-auth__aide p { margin: 0 0 10px; }
.hcse-auth__aide strong { color: var(--hcse-texte); }

/* Liste des entreprises -------------------------------------------------- */
.hcse-liste-entreprises { display: grid; gap: 14px; margin: 0; padding: 0; list-style: none; }
.hcse-carte {
	padding: 26px 28px;
	border-radius: var(--hcse-rayon);
	background: var(--hcse-blanc);
	box-shadow: var(--hcse-ombre);
}
.hcse-carte h2 { margin: 0 0 16px; font-size: 17px; font-weight: 700; }
.hcse-carte-entreprise {
	display: flex;
	align-items: center;
	gap: 22px;
	padding: 18px 24px;
	color: inherit !important;
	text-decoration: none;
	transition: box-shadow .15s, transform .15s;
}
.hcse-carte-entreprise:hover { box-shadow: 0 2px 4px rgba(29, 29, 31, .06), 0 10px 30px rgba(31, 91, 155, .14); transform: translateY(-1px); }
.hcse-carte-entreprise__logo { display: grid; flex: none; place-items: center; width: 92px; height: 64px; }
.hcse-carte-entreprise__logo img { max-width: 92px; max-height: 64px; width: auto; height: auto; object-fit: contain; }
.hcse-carte-entreprise__texte { min-width: 0; }
.hcse-carte-entreprise__nom { display: block; margin-bottom: 4px; color: var(--hcse-bleu); font-size: 18px; font-weight: 700; }
.hcse-carte-entreprise__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; color: var(--hcse-gris); font-size: 14px; }
.hcse-carte-entreprise__chiffres { display: block; margin-top: 6px; font-size: 14px; font-weight: 600; }
.hcse-carte-entreprise__fleche { margin-left: auto; color: var(--hcse-rouge); font-size: 22px; }

.hcse-initiales { color: var(--hcse-bleu); font-size: 30px; font-weight: 800; letter-spacing: .02em; }

/* Fiche d'une entreprise ------------------------------------------------- */
.hcse-fiche { display: flex; align-items: center; gap: 24px; margin-bottom: 26px; }
.hcse-fiche__logo {
	display: grid;
	flex: none;
	place-items: center;
	width: 124px;
	height: 124px;
	padding: 14px;
	border-radius: var(--hcse-rayon);
	background: var(--hcse-blanc);
	box-shadow: var(--hcse-ombre);
}
.hcse-fiche__logo img { max-width: 100%; max-height: 96px; width: auto; height: auto; object-fit: contain; }
.hcse-surtitre {
	margin: 0 0 4px;
	color: var(--hcse-rouge);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
}
.hcse-fiche h1 { margin: 0 0 10px; color: var(--hcse-bleu); font-size: 32px; font-weight: 800; overflow-wrap: anywhere; }
.hcse-fiche__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; margin: 0 0 6px; font-weight: 500; }
.hcse-fiche__details { display: flex; flex-wrap: wrap; gap: 4px 18px; margin: 0; color: var(--hcse-gris); font-size: 14px; }
.hcse-fiche__details a { font-weight: 600; }

.hcse-badge {
	display: inline-block;
	padding: 3px 10px;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .02em;
	white-space: nowrap;
}
.hcse-badge--ouvert { background: #dff3e6; color: #14532d; }
.hcse-badge--a_venir { background: #e3ecf8; color: var(--hcse-bleu-fonce); }
.hcse-badge--clos { background: #ece9e7; color: #4a4a4f; }
.hcse-badge--incomplet { background: #fff3cd; color: #664d03; }

.hcse-grille { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(0, 1fr); gap: 20px; margin-bottom: 20px; }
.hcse-grille--compte { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: start; }

.hcse-partage h2 { margin-bottom: 8px; }
.hcse-partage p { margin: 0 0 16px; color: var(--hcse-gris); font-size: 14px; }
.hcse-copie { display: flex; gap: 8px; margin-bottom: 16px; }
.hcse-copie input[type="text"] {
	flex: 1;
	min-width: 0;
	height: 46px;
	background: #fbfaf9;
	color: var(--hcse-bleu);
	font-size: 15px;
	font-weight: 500;
}
.hcse-copie .hcse-bouton { min-width: 124px; }
.hcse-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 22px; margin: 0 !important; }
.hcse-lien-simple { font-size: 14px; font-weight: 600; text-decoration: none; }
.hcse-lien-simple:hover { text-decoration: underline; }

.hcse-chiffres { display: flex; flex-direction: column; justify-content: center; gap: 16px; }
.hcse-chiffres div { display: flex; align-items: baseline; gap: 14px; }
.hcse-chiffres strong { min-width: 1.6em; color: var(--hcse-rouge); font-size: 38px; font-weight: 800; line-height: 1; text-align: right; }
.hcse-chiffres span { color: var(--hcse-gris); font-size: 14px; }

/* Demandes et cadeaux ---------------------------------------------------- */
.hcse-suivi { padding: 0; }
.hcse-suivi__entete {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 0 16px;
	padding: 16px 28px 0;
	border-bottom: 1px solid var(--hcse-bord);
}
.hcse-suivi__entete .hcse-bouton { margin-bottom: 12px; }
.hcse-onglets { display: flex; flex-wrap: wrap; gap: 0 26px; }
.hcse-onglet {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-bottom: -1px;
	padding: 14px 2px 12px;
	border-bottom: 3px solid transparent;
	color: var(--hcse-gris) !important;
	font-size: 15px;
	font-weight: 600;
	text-decoration: none;
}
.hcse-onglet:hover { color: var(--hcse-bleu) !important; }
.hcse-onglet[aria-selected="true"] { border-bottom-color: var(--hcse-rouge); color: var(--hcse-bleu) !important; }
.hcse-pastille { padding: 1px 8px; border-radius: 999px; background: var(--hcse-fond); color: var(--hcse-texte); font-size: 12px; font-weight: 600; }
.hcse-panneau { padding: 20px 28px 26px; }
.hcse-panneau + .hcse-panneau { border-top: 1px solid var(--hcse-bord); }
.hcse-js .hcse-panneau + .hcse-panneau { border-top: 0; }

.hcse-outils { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; margin-bottom: 10px; }
.hcse-recherche { position: relative; flex: 1 1 300px; max-width: 420px; }
.hcse-recherche .hcse-icone { position: absolute; top: 50%; left: 14px; transform: translateY(-50%); color: var(--hcse-gris); }
.hcse-recherche input[type="search"] { height: 44px; padding-left: 42px; font-size: 15px; }
.hcse-compteur { margin: 0; color: var(--hcse-gris); font-size: 14px; }

.hcse-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.hcse-table th {
	padding: 12px;
	border-bottom: 1px solid var(--hcse-bord);
	color: var(--hcse-gris);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .06em;
	text-align: left;
	text-transform: uppercase;
	white-space: nowrap;
}
.hcse-table th sup { text-transform: lowercase; }
.hcse-table th button {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 0;
	border: 0;
	background: none;
	color: inherit;
	font: inherit;
	letter-spacing: inherit;
	text-transform: inherit;
	cursor: pointer;
}
.hcse-table th button::after { content: "↕"; opacity: .45; }
.hcse-table th[aria-sort="ascending"] button::after { content: "↑"; opacity: 1; }
.hcse-table th[aria-sort="descending"] button::after { content: "↓"; opacity: 1; }
.hcse-table th button:hover { color: var(--hcse-bleu); }
.hcse-table td { padding: 14px 12px; border-bottom: 1px solid var(--hcse-bord); vertical-align: top; }
.hcse-table tbody tr:last-child td { border-bottom: 0; }
.hcse-table tbody tr:hover { background: #fcfbfa; }
.hcse-num { text-align: right !important; white-space: nowrap; }
.hcse-salarie { white-space: nowrap; }
.hcse-salarie strong { font-weight: 700; }
.hcse-date { white-space: nowrap; }
.hcse-date span { display: block; color: var(--hcse-gris); font-size: 13px; }
.hcse-enfants { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
.hcse-enfant { display: block; margin-bottom: 2px; color: var(--hcse-bleu); font-weight: 600; }
.hcse-choix { display: block; }
.hcse-choix--2 { color: var(--hcse-gris); }
.hcse-rang {
	display: inline-block;
	min-width: 66px;
	color: var(--hcse-gris);
	font-size: 12px;
	font-weight: 500;
}
.hcse-carte-cadeau { font-weight: 600; }

/* Compte ----------------------------------------------------------------- */
.hcse-infos { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 8px 18px; margin: 0 0 18px; }
.hcse-infos dt { color: var(--hcse-gris); font-size: 14px; }
.hcse-infos dd { margin: 0; font-weight: 500; overflow-wrap: anywhere; }

/* Pied de page ----------------------------------------------------------- */
.hcse-pied { flex: none; border-top: 1px solid var(--hcse-bord); background: var(--hcse-blanc); }
.hcse-pied__dedans {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 10px 28px;
	max-width: 1120px;
	margin: 0 auto;
	padding: 22px 24px;
	color: var(--hcse-gris);
	font-size: 13px;
}
.hcse-pied p { display: flex; flex-wrap: wrap; gap: 4px 18px; margin: 0; }
.hcse-pied__magasins span:first-child { color: var(--hcse-texte); font-weight: 600; }
.hcse-pied a { color: var(--hcse-gris); }
.hcse-pied a:hover { color: var(--hcse-bleu); }

/* Tablette et téléphone -------------------------------------------------- */
@media (max-width: 880px) {
	.hcse-grille, .hcse-grille--compte { grid-template-columns: minmax(0, 1fr); }
	.hcse-chiffres { display: grid; grid-template-columns: repeat(auto-fit, minmax(110px, 1fr)); gap: 16px 24px; }
	.hcse-chiffres div { flex-direction: column; align-items: flex-start; gap: 6px; }
	.hcse-chiffres strong { min-width: 0; font-size: 34px; text-align: left; }
}

@media (max-width: 720px) {
	/* Demandes : une carte par salarié. */
	.hcse-table--demandes thead { display: none; }
	.hcse-table--demandes tbody tr {
		display: grid;
		grid-template-columns: minmax(0, 1fr) auto;
		gap: 4px 12px;
		padding: 14px 0;
		border-bottom: 1px solid var(--hcse-bord);
	}
	.hcse-table--demandes tbody tr:last-child { border-bottom: 0; }
	.hcse-table--demandes tbody tr:hover { background: none; }
	.hcse-table--demandes td { display: block; padding: 0; border: 0; }
	.hcse-table--demandes td:nth-child(2) { grid-column: 1 / -1; grid-row: 2; padding-top: 6px; }
	.hcse-table--demandes .hcse-salarie { white-space: normal; font-size: 15px; }
	.hcse-table--demandes .hcse-date { text-align: right; font-size: 13px; }
	.hcse-table--demandes .hcse-date span { display: inline; margin-left: 4px; }

	/* Cadeaux : une carte par référence, libellé à gauche. */
	.hcse-table--cadeaux thead { display: none; }
	.hcse-table--cadeaux tbody tr { display: block; padding: 10px 0; border-bottom: 1px solid var(--hcse-bord); }
	.hcse-table--cadeaux td { display: flex; justify-content: space-between; gap: 16px; padding: 3px 0; border: 0; text-align: right; }
	.hcse-table--cadeaux td::before { content: attr(data-label); color: var(--hcse-gris); font-weight: 600; text-align: left; }
}

@media (max-width: 640px) {
	body.hcse { font-size: 15px; }
	.hcse-entete__dedans { min-height: 58px; padding: 0 16px; gap: 8px; }
	.hcse-entete__marque img { width: 118px; }
	.hcse-entete__marque span { margin-left: 10px; padding-left: 10px; font-size: 11px; }
	.hcse-menu { gap: 0; }
	.hcse-menu a { padding: 8px; }
	.hcse-menu a span {
		position: absolute;
		width: 1px; height: 1px;
		overflow: hidden;
		clip: rect(0 0 0 0);
		white-space: nowrap;
	}
	.hcse-menu .hcse-icone { width: 22px; height: 22px; }
	.hcse-contenu { padding: 24px 16px 48px; }
	.hcse-titre-page h1 { font-size: 24px; }
	.hcse-auth { margin-top: 0; }
	.hcse-auth__carte { padding: 28px 22px; }
	.hcse-auth__titre { font-size: 24px; }
	.hcse-carte { padding: 22px 20px; }
	.hcse-fiche { flex-direction: column; align-items: flex-start; gap: 16px; }
	.hcse-fiche__logo { width: 92px; height: 92px; padding: 10px; }
	.hcse-fiche__logo img { max-height: 72px; }
	.hcse-fiche h1 { font-size: 26px; }
	.hcse-copie { flex-direction: column; }
	.hcse-actions .hcse-bouton { width: 100%; }
	.hcse-suivi { padding: 0; }
	.hcse-suivi__entete { padding: 8px 20px 0; }
	.hcse-suivi__entete .hcse-bouton { width: 100%; margin: 4px 0 14px; order: -1; }
	.hcse-onglets { gap: 0 18px; }
	.hcse-onglet { font-size: 14px; }
	.hcse-panneau { padding: 16px 20px 22px; }
	.hcse-carte-entreprise { gap: 14px; padding: 16px; }
	.hcse-carte-entreprise__logo { width: 64px; height: 48px; }
	.hcse-carte-entreprise__logo img { max-width: 64px; max-height: 48px; }
	.hcse-pied__dedans { padding: 18px 16px; }
}

@media (max-width: 430px) {
	.hcse-entete__site { display: none; }
}
