/* =============================================================================
   Puck — Espace client
   Les sélecteurs sont volontairement préfixés pour passer devant les styles
   génériques du thème InPulse (inputs, buttons, labels, p, ul) sans !important.
   ========================================================================== */

:root {
	--puck-ec-red: #bd1c1e;
	--puck-ec-red-dark: #9e1719;
	--puck-ec-dark: #313131;
	--puck-ec-text: #434343;
	--puck-ec-text-soft: #555;
	--puck-ec-muted: #6b6b6b;
	--puck-ec-taupe: #8a8278;
	--puck-ec-beige: #f4efe8;
	--puck-ec-line: #eee7dd;
	--puck-ec-line-strong: #e4ddd3;
	--puck-ec-input-line: #d9d1c5;
	--puck-ec-disabled: #bdb6ac;
	--puck-ec-alert-bg: #fbecec;
	--puck-ec-alert-text: #8c1416;
	--puck-ec-success: #2e7d52;
	--puck-ec-success-bar: #2e8b57;
	--puck-ec-success-bg: #e6f2eb;
	--puck-ec-radius: 3px;
	--puck-ec-font: Montserrat, sans-serif;
}

body.puck-ec #main {
	padding: 0;
}

/* Le header du thème est transparent, superposé au bandeau titre (masqué ici) :
   sur l'espace client il devient blanc, comme sur la maquette.
   !important nécessaire : la couleur est posée en style inline par le header builder. */
body.puck-ec .wgl-theme-header.header_overlap {
	position: relative;
	background: #fff;
	border-bottom: 1px solid var(--puck-ec-line);
}

/* Le header sticky (fond sombre) est imbriqué dans le header : il garde ses couleurs. */
body.puck-ec .wgl-theme-header.header_overlap .wgl-header-row:not(.wgl-sticky-header *),
body.puck-ec .wgl-theme-header.header_overlap .header_button .wgl-button:not(.wgl-sticky-header *),
body.puck-ec .wgl-theme-header.header_overlap .header_button .wgl-button:not(.wgl-sticky-header *):hover {
	color: var(--puck-ec-dark) !important;
}

body.puck-ec .wgl-theme-header.header_overlap .delimiter:not(.wgl-sticky-header *) {
	background-color: var(--puck-ec-disabled) !important;
}

.puck-ec-page {
	font-family: var(--puck-ec-font);
	color: var(--puck-ec-dark);
}

.puck-ec-page *,
.puck-ec-page *::before,
.puck-ec-page *::after {
	box-sizing: border-box;
}

.puck-ec-page p,
.puck-ec-page h1,
.puck-ec-page h2,
.puck-ec-page ul,
.puck-ec-page dl,
.puck-ec-page dd {
	margin: 0;
	padding: 0;
}

/* -----------------------------------------------------------------------------
   Typographie
   -------------------------------------------------------------------------- */

.puck-ec-page .puck-ec-eyebrow {
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--puck-ec-red);
}

.puck-ec-page .puck-ec-h1 {
	font-family: var(--puck-ec-font);
	font-size: 24px;
	font-weight: 800;
	line-height: 1.15;
	letter-spacing: 0;
	text-transform: uppercase;
	color: var(--puck-ec-dark);
}

.puck-ec-page .puck-ec-h2 {
	font-family: var(--puck-ec-font);
	font-size: 20px;
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: 0;
	text-transform: uppercase;
	color: var(--puck-ec-dark);
}

.puck-ec-page .puck-ec-step {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--puck-ec-red);
}

.puck-ec-page .puck-ec-text {
	font-size: 14px;
	line-height: 1.6;
	color: var(--puck-ec-text-soft);
	text-wrap: pretty;
}

.puck-ec-page .puck-ec-text strong {
	color: var(--puck-ec-dark);
}

.puck-ec-page .puck-ec-muted {
	font-size: 13px;
	line-height: 1.5;
	color: var(--puck-ec-muted);
}

.puck-ec-page .puck-ec-heading {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.puck-ec-page .puck-ec-link,
.puck-ec-page .puck-ec-link:visited {
	font-weight: 700;
	color: var(--puck-ec-red);
	text-decoration: none;
}

.puck-ec-page .puck-ec-link:hover,
.puck-ec-page .puck-ec-link:focus-visible {
	color: var(--puck-ec-red-dark);
}

.puck-ec-page .puck-ec-link--caps {
	font-size: 12px;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.puck-ec-page .puck-ec-rule {
	display: block;
	width: 56px;
	height: 4px;
	background: var(--puck-ec-red);
}

/* -----------------------------------------------------------------------------
   Formulaires
   -------------------------------------------------------------------------- */

.puck-ec-page .puck-ec-form {
	display: flex;
	flex-direction: column;
	gap: 20px;
	margin: 0;
}

.puck-ec-page .puck-ec-field {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.puck-ec-page .puck-ec-label {
	display: block;
	margin: 0;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--puck-ec-dark);
}

.puck-ec-page .puck-ec-form input.puck-ec-input {
	display: block;
	width: 100%;
	max-width: none;
	height: 50px;
	margin: 0;
	padding: 0 16px;
	border: 1.5px solid var(--puck-ec-input-line);
	border-radius: var(--puck-ec-radius);
	background: #fff;
	font-family: var(--puck-ec-font);
	font-size: 15px;
	font-weight: 400;
	line-height: 1;
	color: var(--puck-ec-dark);
	box-shadow: none;
	transition: border-color .2s;
}

.puck-ec-page .puck-ec-form input.puck-ec-input[type="password"] {
	font-size: 18px;
	letter-spacing: .2em;
}

.puck-ec-page .puck-ec-form input.puck-ec-input:focus {
	border-color: var(--puck-ec-dark);
	outline: none;
}

.puck-ec-page .puck-ec-form input.puck-ec-input.is-invalid,
.puck-ec-page .puck-ec-form .is-invalid input.puck-ec-input {
	border-color: var(--puck-ec-red);
}

.puck-ec-page .puck-ec-password {
	position: relative;
}

.puck-ec-page .puck-ec-form .puck-ec-password input.puck-ec-input {
	padding-right: 50px;
}

.puck-ec-page .puck-ec-password__toggle {
	position: absolute;
	top: 50%;
	right: 6px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: var(--puck-ec-radius);
	background: transparent;
	color: var(--puck-ec-taupe);
	cursor: pointer;
	transform: translateY(-50%);
}

.puck-ec-page .puck-ec-password__toggle:hover,
.puck-ec-page .puck-ec-password__toggle:focus-visible {
	color: var(--puck-ec-dark);
}

.puck-ec-page .puck-ec-form__row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	font-size: 13px;
}

.puck-ec-page .puck-ec-form__actions {
	display: flex;
	align-items: center;
	gap: 24px;
	font-size: 13px;
}

/* Case à cocher personnalisée */
.puck-ec-page .puck-ec-checkbox {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	font-size: 13px;
	font-weight: 500;
	cursor: pointer;
}

.puck-ec-page .puck-ec-checkbox input {
	position: absolute;
	width: 18px;
	height: 18px;
	margin: 0;
	opacity: 0;
}

.puck-ec-page .puck-ec-checkbox__box {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 18px;
	height: 18px;
	border: 1.5px solid var(--puck-ec-input-line);
	border-radius: var(--puck-ec-radius);
	background: #fff;
}

.puck-ec-page .puck-ec-checkbox input:checked + .puck-ec-checkbox__box {
	border-color: var(--puck-ec-dark);
	background: var(--puck-ec-dark) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / 12px no-repeat;
}

.puck-ec-page .puck-ec-checkbox input:focus-visible + .puck-ec-checkbox__box {
	outline: 2px solid var(--puck-ec-dark);
	outline-offset: 2px;
}

/* -----------------------------------------------------------------------------
   Boutons
   -------------------------------------------------------------------------- */

.puck-ec-page .puck-ec-btn,
.puck-ec-page .puck-ec-btn:visited {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	height: 52px;
	margin: 0;
	padding: 0 24px;
	border: 0;
	border-radius: var(--puck-ec-radius);
	background: var(--puck-ec-red);
	font-family: var(--puck-ec-font);
	font-size: 13px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: .12em;
	text-transform: uppercase;
	text-decoration: none;
	color: #fff;
	cursor: pointer;
	transition: background-color .2s;
}

.puck-ec-page .puck-ec-btn:hover,
.puck-ec-page .puck-ec-btn:focus-visible {
	background: var(--puck-ec-red-dark);
	color: #fff;
}

.puck-ec-page .puck-ec-btn:focus-visible {
	outline: 2px solid var(--puck-ec-dark);
	outline-offset: 2px;
}

.puck-ec-page .puck-ec-btn--block {
	display: flex;
	width: 100%;
}

.puck-ec-page .puck-ec-btn-outline,
.puck-ec-page .puck-ec-btn-outline:visited {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 9px 14px;
	border: 1.5px solid var(--puck-ec-dark);
	border-radius: var(--puck-ec-radius);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--puck-ec-dark);
	transition: background-color .2s, color .2s;
}

.puck-ec-page .puck-ec-btn-outline:hover,
.puck-ec-page .puck-ec-btn-outline:focus-visible {
	background: var(--puck-ec-dark);
	color: #fff;
}

.puck-ec-page .puck-ec-back,
.puck-ec-page .puck-ec-back:visited {
	display: inline-flex;
	align-items: center;
	align-self: flex-start;
	gap: 6px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--puck-ec-dark);
}

.puck-ec-page .puck-ec-back:hover {
	color: var(--puck-ec-red);
}

/* -----------------------------------------------------------------------------
   Messages
   -------------------------------------------------------------------------- */

.puck-ec-page .puck-ec-alert {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	padding: 14px 16px;
	border-radius: var(--puck-ec-radius);
	background: var(--puck-ec-alert-bg);
	font-size: 13px;
	line-height: 1.5;
	color: var(--puck-ec-alert-text);
}

.puck-ec-page .puck-ec-alert svg {
	flex-shrink: 0;
}

.puck-ec-page .puck-ec-note {
	padding: 14px 16px;
	border-radius: var(--puck-ec-radius);
	background: var(--puck-ec-beige);
	font-size: 13px;
	line-height: 1.5;
	color: var(--puck-ec-text);
}

.puck-ec-page .puck-ec-success {
	padding: 14px 16px;
	border-radius: var(--puck-ec-radius);
	background: var(--puck-ec-success-bg);
	font-size: 13px;
	font-weight: 600;
	color: var(--puck-ec-success);
}

/* -----------------------------------------------------------------------------
   02 — Connexion
   -------------------------------------------------------------------------- */

.puck-ec-login {
	display: grid;
	grid-template-columns: 1fr 1fr;
	min-height: calc(100vh - 101px - var(--wp-admin--admin-bar--height, 0px));
	min-height: calc(100svh - 101px - var(--wp-admin--admin-bar--height, 0px));
}

.puck-ec-login__intro {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 24px;
	padding: 96px 72px;
	background: var(--puck-ec-beige);
}

.puck-ec-page .puck-ec-login__title {
	font-family: var(--puck-ec-font);
	font-size: 56px;
	font-weight: 800;
	line-height: 1;
	letter-spacing: -.01em;
	text-transform: uppercase;
	color: var(--puck-ec-dark);
}

.puck-ec-page .puck-ec-login__lead {
	max-width: 400px;
	font-size: 16px;
	line-height: 1.7;
	color: var(--puck-ec-text);
	text-wrap: pretty;
}

.puck-ec-login__form-wrap {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 28px;
	width: 100%;
	max-width: 640px;
	padding: 80px 96px;
}

.puck-ec-login__form-wrap .puck-ec-heading {
	gap: 8px;
}

.puck-ec-page .puck-ec-login__form-wrap .puck-ec-h2 {
	font-size: 26px;
}

.puck-ec-page .puck-ec-login__form-wrap .puck-ec-muted {
	font-size: 14px;
}

.puck-ec-page .puck-ec-login__form-wrap .puck-ec-btn {
	height: 54px;
	margin-top: 8px;
}

.puck-ec-page .puck-ec-login__help {
	padding-top: 20px;
	border-top: 1px solid var(--puck-ec-line);
	font-size: 13px;
	color: var(--puck-ec-muted);
}

/* -----------------------------------------------------------------------------
   03 → 06 — Gabarit carte (mot de passe)
   -------------------------------------------------------------------------- */

.puck-ec-card-layout {
	display: flex;
	flex-direction: column;
	min-height: calc(100vh - 101px - var(--wp-admin--admin-bar--height, 0px));
	min-height: calc(100svh - 101px - var(--wp-admin--admin-bar--height, 0px));
	background: var(--puck-ec-beige);
}

.puck-ec-page .puck-ec-breadcrumb {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 40px 72px 0;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--puck-ec-taupe);
}

.puck-ec-page .puck-ec-breadcrumb a,
.puck-ec-page .puck-ec-breadcrumb a:visited {
	color: var(--puck-ec-taupe);
	text-decoration: none;
}

.puck-ec-page .puck-ec-breadcrumb a:hover {
	color: var(--puck-ec-dark);
}

.puck-ec-page .puck-ec-breadcrumb [aria-current] {
	color: var(--puck-ec-dark);
}

.puck-ec-card-layout__body {
	display: flex;
	align-items: center;
	flex: 1;
	justify-content: center;
	padding: 48px 72px 96px;
}

.puck-ec-card {
	display: flex;
	flex-direction: column;
	gap: 24px;
	width: 100%;
	max-width: 480px;
	padding: 48px;
	border-radius: var(--puck-ec-radius);
	background: #fff;
	box-shadow: 0 4px 18px rgba(49, 49, 49, .06);
}

.puck-ec-card .puck-ec-form {
	gap: 22px;
}

.puck-ec-icon-badge {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: var(--puck-ec-alert-bg);
	color: var(--puck-ec-red);
}

.puck-ec-icon-badge--success {
	background: var(--puck-ec-success-bg);
	color: var(--puck-ec-success);
}

.puck-ec-card__footer {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding-top: 20px;
	border-top: 1px solid var(--puck-ec-line);
	font-size: 13px;
}

.puck-ec-card__footer form {
	margin: 0;
}

.puck-ec-page .puck-ec-resend {
	height: auto;
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
	font-family: var(--puck-ec-font);
	font-size: 13px;
	font-weight: 700;
	line-height: 1.5;
	letter-spacing: 0;
	text-transform: none;
	color: var(--puck-ec-red);
	cursor: pointer;
}

.puck-ec-page .puck-ec-resend:hover {
	color: var(--puck-ec-red-dark);
}

.puck-ec-page .puck-ec-resend:disabled {
	font-weight: 600;
	color: var(--puck-ec-taupe);
	cursor: default;
}

/* Jauge de robustesse */
.puck-ec-strength {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 4px;
	margin-top: 4px;
}

.puck-ec-strength span {
	height: 4px;
	border-radius: 2px;
	background: var(--puck-ec-line-strong);
	transition: background-color .2s;
}

.puck-ec-strength span.is-on {
	background: var(--puck-ec-success-bar);
}

/* Règles du mot de passe */
.puck-ec-page .puck-ec-rules {
	display: flex;
	flex-direction: column;
	gap: 8px;
	list-style: none;
	font-size: 13px;
}

.puck-ec-page .puck-ec-rules__item {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	padding: 0;
	font-weight: 500;
	line-height: 1.5;
	color: var(--puck-ec-taupe);
}

/* Le thème positionne ses propres puces en absolu sur body ul li::before. */
.puck-ec-page .puck-ec-rules__item::before {
	content: "";
	position: static;
	top: auto;
	left: auto;
	display: block;
	margin: 0;
	transform: none;
	flex-shrink: 0;
	width: 14px;
	height: 14px;
	border: 1.5px solid var(--puck-ec-disabled);
	border-radius: 50%;
}

.puck-ec-page .puck-ec-rules__item.is-valid {
	font-weight: 600;
	color: var(--puck-ec-success);
}

.puck-ec-page .puck-ec-rules__item.is-valid::before {
	border: 0;
	border-radius: 0;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232E7D52' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* -----------------------------------------------------------------------------
   07 — Tableau de bord
   -------------------------------------------------------------------------- */

.puck-ec-dashboard__hero {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px;
	padding: 56px 72px;
	background: var(--puck-ec-beige);
}

.puck-ec-dashboard__hero .puck-ec-heading {
	gap: 14px;
}

.puck-ec-page .puck-ec-dashboard__title {
	font-family: var(--puck-ec-font);
	font-size: 48px;
	font-weight: 800;
	line-height: 1;
	letter-spacing: 0;
	text-transform: uppercase;
	color: var(--puck-ec-dark);
}

.puck-ec-page .puck-ec-dashboard__company {
	font-size: 15px;
	color: var(--puck-ec-text-soft);
}

.puck-ec-page .puck-ec-logout,
.puck-ec-page .puck-ec-logout:visited {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--puck-ec-dark);
}

.puck-ec-page .puck-ec-logout:hover {
	color: var(--puck-ec-red);
}

.puck-ec-dashboard__body {
	display: flex;
	flex-direction: column;
	gap: 32px;
	padding: 48px 72px 72px;
}

.puck-ec-report-card {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 22px;
	padding: 48px;
	overflow: hidden;
	border-radius: var(--puck-ec-radius);
	background: var(--puck-ec-dark);
	color: #fff;
}

.puck-ec-page .puck-ec-report-card__picto {
	position: absolute;
	top: 40px;
	right: 40px;
	width: 120px;
	height: auto;
}

.puck-ec-page .puck-ec-report-card__eyebrow {
	margin: 0;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: #f0a5a6;
}

.puck-ec-page .puck-ec-report-card__title {
	max-width: 440px;
	margin: 0;
	font-family: var(--puck-ec-font);
	font-size: 32px;
	font-weight: 800;
	line-height: 1.1;
	letter-spacing: 0;
	text-transform: uppercase;
	color: #fff;
}

.puck-ec-page .puck-ec-report-card__text {
	max-width: 460px;
	margin: 0;
	font-size: 15px;
	line-height: 1.65;
	color: #d9d4cc;
}

.puck-ec-report-card__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 16px 24px;
	margin-top: 8px;
}

.puck-ec-report-card__date {
	font-size: 13px;
	color: var(--puck-ec-disabled);
}

.puck-ec-dashboard__grid {
	display: grid;
	grid-template-columns: minmax(0, 2.4fr) minmax(0, 1fr);
	align-items: stretch;
	gap: 32px;
}

.puck-ec-panel {
	display: flex;
	flex-direction: column;
	gap: 24px;
	padding: 32px;
	border: 1.5px solid var(--puck-ec-line-strong);
	border-radius: var(--puck-ec-radius);
}

.puck-ec-panel--muted {
	gap: 20px;
	border-color: transparent;
	background: var(--puck-ec-beige);
}

.puck-ec-panel__head {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}

.puck-ec-page .puck-ec-info-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 22px 32px;
}

.puck-ec-page .puck-ec-info {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.puck-ec-page .puck-ec-info__label {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--puck-ec-taupe);
}

.puck-ec-page .puck-ec-info__value {
	font-size: 15px;
	font-weight: 600;
	overflow-wrap: anywhere;
	color: var(--puck-ec-dark);
}

.puck-ec-page .puck-ec-info-form {
	gap: 28px;
}

.puck-ec-security {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
}

.puck-ec-security > div {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.puck-ec-page .puck-ec-security__label {
	font-size: 14px;
	font-weight: 700;
}

/* -----------------------------------------------------------------------------
   01 — Header : bouton et menu utilisateur (hors .puck-ec-page)
   -------------------------------------------------------------------------- */

.puck-ec-header-btn,
.puck-ec-header-btn:visited {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 12px 18px;
	border-radius: var(--puck-ec-radius);
	background: var(--puck-ec-red);
	font-family: var(--puck-ec-font);
	font-size: 12px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: .1em;
	text-transform: uppercase;
	text-decoration: none;
	white-space: nowrap;
	color: #fff;
	transition: background-color .2s;
}

.puck-ec-header-btn:hover,
.puck-ec-header-btn:focus-visible {
	background: var(--puck-ec-red-dark);
	color: #fff;
}

/* Passe devant « .wgl-theme-header .wrapper a { color: inherit } » du thème (texte sombre sur header clair). */
.wgl-theme-header .wrapper a.puck-ec-header-btn {
	color: #fff;
}

.puck-ec-user-menu {
	position: relative;
	display: inline-block;
	font-family: var(--puck-ec-font);
}

.puck-ec-user-menu .puck-ec-user-menu__toggle {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	height: auto;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: none;
	font-family: var(--puck-ec-font);
	font-size: 13px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0;
	text-transform: none;
	white-space: nowrap;
	color: inherit;
	cursor: pointer;
}

.puck-ec-user-menu__toggle > svg {
	transition: transform .2s;
}

.puck-ec-user-menu__toggle[aria-expanded="true"] > svg {
	transform: rotate(180deg);
}

.puck-ec-avatar {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: var(--puck-ec-red);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .04em;
	color: #fff;
}

.puck-ec-user-menu__panel {
	position: absolute;
	top: calc(100% + 16px);
	right: 0;
	z-index: 1000;
	display: flex;
	flex-direction: column;
	width: 240px;
	padding: 8px 0;
	border-radius: var(--puck-ec-radius);
	background: #fff;
	box-shadow: 0 12px 32px rgba(49, 49, 49, .16);
	text-align: left;
}

.puck-ec-user-menu__panel[hidden] {
	display: none;
}

.puck-ec-user-menu__identity {
	display: flex;
	flex-direction: column;
	gap: 2px;
	padding: 10px 18px 12px;
	border-bottom: 1px solid var(--puck-ec-line);
	line-height: 1.4;
}

.puck-ec-user-menu__identity strong {
	font-size: 13px;
	font-weight: 700;
	color: var(--puck-ec-dark);
}

.puck-ec-user-menu__identity span {
	font-size: 12px;
	color: var(--puck-ec-muted);
}

/* div. : passe devant « .wgl-theme-header .wrapper a { color: inherit } » du thème. */
.puck-ec-user-menu div.puck-ec-user-menu__panel a,
.puck-ec-user-menu div.puck-ec-user-menu__panel a:visited {
	display: block;
	padding: 12px 18px;
	font-size: 13px;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: 0;
	text-transform: none;
	text-decoration: none;
	color: var(--puck-ec-dark);
}

.puck-ec-user-menu div.puck-ec-user-menu__panel a:hover,
.puck-ec-user-menu div.puck-ec-user-menu__panel a:focus-visible {
	background: var(--puck-ec-beige);
	color: var(--puck-ec-dark);
}

.puck-ec-user-menu div.puck-ec-user-menu__panel a.puck-ec-user-menu__logout {
	border-top: 1px solid var(--puck-ec-line);
	color: var(--puck-ec-red);
}

/* -----------------------------------------------------------------------------
   Responsive (les maquettes ne couvrent que le desktop 1280 px)
   -------------------------------------------------------------------------- */

@media (max-width: 1100px) {
	.puck-ec-login__intro {
		padding: 72px 48px;
	}

	.puck-ec-login__form-wrap {
		padding: 72px 48px;
	}

	.puck-ec-dashboard__grid {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (max-width: 860px) {
	.puck-ec-login {
		grid-template-columns: 1fr;
	}

	.puck-ec-login__intro {
		gap: 16px;
		padding: 48px 32px;
	}

	.puck-ec-page .puck-ec-login__title {
		font-size: 40px;
	}

	.puck-ec-login__form-wrap {
		max-width: none;
		padding: 48px 32px 64px;
	}

	.puck-ec-page .puck-ec-breadcrumb {
		padding: 32px 32px 0;
	}

	.puck-ec-card-layout__body {
		padding: 32px 32px 64px;
	}

	.puck-ec-dashboard__hero {
		padding: 40px 32px;
	}

	.puck-ec-page .puck-ec-dashboard__title {
		font-size: 36px;
	}

	.puck-ec-dashboard__body {
		padding: 32px 32px 56px;
	}

	.puck-ec-report-card {
		padding: 40px 32px;
	}

	.puck-ec-page .puck-ec-report-card__picto {
		top: 32px;
		right: 32px;
		width: 80px;
	}

	.puck-ec-page .puck-ec-report-card__title {
		max-width: calc(100% - 96px);
		font-size: 26px;
	}
}

@media (max-width: 560px) {
	.puck-ec-login__intro,
	.puck-ec-login__form-wrap,
	.puck-ec-dashboard__hero,
	.puck-ec-dashboard__body {
		padding-right: 20px;
		padding-left: 20px;
	}

	.puck-ec-page .puck-ec-breadcrumb {
		padding: 24px 20px 0;
	}

	.puck-ec-card-layout__body {
		padding: 24px 16px 48px;
	}

	.puck-ec-card {
		padding: 32px 24px;
	}

	.puck-ec-panel {
		padding: 24px 20px;
	}

	.puck-ec-report-card {
		padding: 32px 20px;
	}

	.puck-ec-page .puck-ec-report-card__picto {
		top: 24px;
		right: 20px;
		width: 56px;
	}

	.puck-ec-page .puck-ec-report-card__title {
		max-width: calc(100% - 64px);
		font-size: 22px;
	}

	.puck-ec-report-card .puck-ec-btn {
		width: 100%;
	}

	.puck-ec-page .puck-ec-info-grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.puck-ec-page .puck-ec-dashboard__title {
		font-size: 30px;
	}

	.puck-ec-user-menu__name {
		display: none;
	}
}
