/* =====================================================================
   THEME "PANELIX" EURESIS : habillage des espaces MO, MOE et Entreprise
   Maquette de référence : _CREA/maquette-panelix/entreprise.html
   Surcouche du thème Hyper (custom.php) : aucun balisage ni JS modifié,
   en mode sombre (#light-style désactivé par app.min.js), le bundle ajoute la classe eu-dark : palette sombre ci-dessous.
   Couleur par espace via la classe du <body> : eu-mo / eu-moe / eu-entreprise / eu-admin
   ===================================================================== */

body.eu-panelix {
	--eu-font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
	--eu-font-display: "MuseoModerno", var(--eu-font);
	--eu-bg: #f8fafc;
	--eu-white: #fff;
	--eu-border: #e2e8f0;
	--eu-text-dark: #1d3150;
	--eu-text: #475569;
	--eu-text-muted: #94a3b8;
	--eu-radius: 12px;
	--eu-radius-sm: 8px;
	--eu-shadow-card: 0 2px 8px rgba(0, 0, 0, .04);
	--eu-shadow-md: 0 4px 12px rgba(0, 0, 0, .08);
	/* MO par défaut : bordeaux */
	--eu-accent: #9b2243;
	--eu-accent-dark: #74182f;
	--eu-accent-light: #f6e6eb;
	--eu-accent-rgb: 155, 34, 67;
	--eu-side: #f8edf0;
	--eu-side-border: #efd3db;
	--eu-side-text: #5a2e3a;
	--eu-side-title: #8a5b67;
}
body.eu-panelix.eu-moe {
	/* MOE : orange (contraste avec le bordeaux du MO) */
	--eu-accent: #ec7a16;
	--eu-accent-dark: #b85a0b;
	--eu-accent-light: #fdeedd;
	--eu-accent-rgb: 236, 122, 22;
	--eu-side: #fff4e8;
	--eu-side-border: #f6dcbf;
	--eu-side-text: #5a3d22;
	--eu-side-title: #9a7048;
}
body.eu-panelix.eu-entreprise {
	/* Entreprise : bleu-vert (highlight du site vitrine, assombri pour le contraste du texte blanc) */
	--eu-accent: #3aa7ae;
	--eu-accent-dark: #2a8187;
	--eu-accent-light: #dcf6f8;
	--eu-accent-rgb: 58, 167, 174;
	--eu-side: #e6f5f6;
	--eu-side-border: #cde9eb;
	--eu-side-text: #5a2e3a;
	--eu-side-title: #8a5b67;
}

body.eu-panelix.eu-admin {
	/* Admin : anthracite (couleur sombre du site vitrine) */
	--eu-accent: #1d3f66;
	--eu-accent-dark: #152f4e;
	--eu-accent-light: #e6edf5;
	--eu-accent-rgb: 29, 63, 102;
	--eu-side: #eef2f7;
	--eu-side-border: #d8e0ea;
	--eu-side-text: #2b3a4c;
	--eu-side-title: #6b7c90;
}

/* Mode sombre : mêmes règles, variables sombres. L'accent "foncé" devient un accent éclairci (texte lisible sur fond sombre). */
body.eu-panelix.eu-dark {
	--eu-bg: #0f1623;
	--eu-white: #172031;
	--eu-border: #263043;
	--eu-text-dark: #e2e8f0;
	--eu-text: #b6c2d1;
	--eu-text-muted: #7d8a9c;
	--eu-shadow-card: 0 2px 8px rgba(0, 0, 0, .35);
	--eu-shadow-md: 0 4px 12px rgba(0, 0, 0, .45);
	--eu-accent-dark: color-mix(in srgb, var(--eu-accent) 70%, #fff);
	--eu-accent-light: rgba(var(--eu-accent-rgb), .18);
	--eu-side: #121b2b;
	--eu-side-border: #263043;
	--eu-side-text: #c8d3e0;
	--eu-side-title: #7d8a9c;
}
body.eu-panelix.eu-admin.eu-dark { --eu-accent: #4f7fb8; --eu-accent-rgb: 79, 127, 184; }
body.eu-panelix.eu-dark .card,
body.eu-panelix.eu-dark .modal-content,
body.eu-panelix.eu-dark .dropdown-menu { background-color: var(--eu-white); }
body.eu-panelix.eu-dark .form-control,
body.eu-panelix.eu-dark .custom-select { background-color: var(--eu-bg); color: var(--eu-text-dark); }
body.eu-panelix.eu-dark .table { color: var(--eu-text); }
/* Fonds clairs génériques (classes Bootstrap et HTML généré côté PHP, ex. consultation) */
body.eu-panelix.eu-dark .bg-white { background-color: var(--eu-white) !important; }
body.eu-panelix.eu-dark .bg-light { background-color: #1e2a3d !important; }
body.eu-panelix.eu-dark .text-dark { color: var(--eu-text-dark) !important; }
body.eu-panelix.eu-dark .border-light { border-color: var(--eu-border) !important; }
/* Cartes / boutons colorés : Hyper sombre rend .text-light en gris foncé, on garde un texte blanc */
body.eu-panelix.eu-dark :is(.bg-primary, .bg-secondary, .bg-success, .bg-info, .bg-warning, .bg-danger, .bg-dark),
body.eu-panelix.eu-dark :is(.bg-primary, .bg-secondary, .bg-success, .bg-info, .bg-warning, .bg-danger, .bg-dark) :is(.text-light, .text-white, h4, h5) { color: #fff !important; }
body.eu-panelix.eu-dark .btn-outline-light { color: #fff; border-color: rgba(255, 255, 255, .6); }
body.eu-panelix.eu-dark .card.bg-secondary { background-color: #475569 !important; }
/* Tableaux lots × entreprises (consultation, attribution) : couleurs codées en dur dans styles-admin.css */
body.eu-panelix.eu-dark :is(#grid-data-lotentr, #grid-data-attrib).table :is(td, th) { background: var(--eu-white) !important; }
body.eu-panelix.eu-dark :is(#grid-data-lotentr, #grid-data-attrib).table thead th { background: #1e2a3d !important; border-color: var(--eu-border) !important; }
body.eu-panelix.eu-dark :is(#grid-data-lotentr, #grid-data-attrib).table :is(th, td):nth-child(1) { background: #1a2436 !important; }
body.eu-panelix.eu-dark :is(#grid-data-lotentr, #grid-data-attrib).table :is(th, td):nth-child(2) { background: #223047 !important; }
body.eu-panelix.eu-dark :is(#grid-data-lotentr, #grid-data-attrib).table tbody tr td { border-top-color: var(--eu-border) !important; border-bottom-color: var(--eu-bg) !important; }
/* Interrupteurs N / ? / O des filtres */
body.eu-panelix.eu-dark .tgl-ios + .tgl-btn { background-color: #263043; border-color: #33405a; }
body.eu-panelix.eu-dark .tgl-ios + .tgl-btn:after { background: #b6c2d1; }
body.eu-panelix.eu-dark .opt-label { background-color: transparent; }
/* Select2 */
body.eu-panelix.eu-dark .select2-container--bootstrap4 .select2-selection,
body.eu-panelix.eu-dark .select2-container--bootstrap4 .select2-dropdown,
body.eu-panelix.eu-dark .select2-container--bootstrap4 .select2-search__field { background-color: var(--eu-bg); color: var(--eu-text-dark); border-color: var(--eu-border); }
body.eu-panelix.eu-dark .select2-container--bootstrap4 .select2-selection__rendered,
body.eu-panelix.eu-dark .select2-container--bootstrap4 .select2-results__option { color: var(--eu-text-dark); }
body.eu-panelix.eu-dark .select2-container--bootstrap4 .select2-selection__clear { background-color: var(--eu-white); }
body.eu-panelix.eu-dark .left-side-menu .logo span.logo-lg img { filter: brightness(0) invert(1); }

/* ---------- Base ---------- */
/* L'ancien thème fixe la racine à 18px (custom.php) : on la ramène à 15px pour que tout ce qui est en rem rétrécisse, comme dans Panelix */
html:has(body.eu-panelix) { font-size: 15px; }
body.eu-panelix { background-color: var(--eu-bg); color: var(--eu-text); font-family: var(--eu-font); font-size: 14px; line-height: 1.5; }
body.eu-panelix .tooltip, body.eu-panelix .popover, body.eu-panelix .dropdown-menu,
body.eu-panelix .modal, body.eu-panelix .btn, body.eu-panelix .form-control,
body.eu-panelix .custom-select, body.eu-panelix .select2-container { font-family: var(--eu-font); }

/* ---------- Menu latéral ---------- */
body.eu-panelix .left-side-menu,
body.eu-panelix[data-leftbar-theme] .left-side-menu {
	background: var(--eu-side) !important;
	background-image: none !important;
	border-right: 1px solid var(--eu-side-border);
	box-shadow: none;
}
body.eu-panelix .left-side-menu .logo,
body.eu-panelix[data-leftbar-theme] .left-side-menu .logo,
body.eu-panelix[data-leftbar-compact-mode="condensed"] .wrapper .left-side-menu .logo {
	z-index: 2;
	background: var(--eu-side) !important;
	border-bottom: 1px solid var(--eu-side-border);
	border-right: 1px solid var(--eu-side-border);
}
body.eu-panelix .left-side-menu .logo span.logo-lg,
body.eu-panelix .left-side-menu .logo span.logo-sm { background: transparent !important; }
body.eu-panelix .left-side-menu .logo img { height: 46px; width: auto; vertical-align: middle; }
body.eu-panelix .left-side-menu .logo span.logo-sm img { height: 38px; width: auto; }

body.eu-panelix .side-nav { padding: 4px 12px 8px; }
body.eu-panelix[data-leftbar-theme] .side-nav .side-nav-title {
	padding: 12px 16px 4px;
	color: var(--eu-side-title);
	font-size: 11px;
	letter-spacing: .06em;
}
body.eu-panelix .side-nav .side-nav-title h4 { margin: 0; color: var(--eu-text-dark); font-family: var(--eu-font-display); font-size: 15px; letter-spacing: 0; text-transform: none; }
body.eu-panelix[data-leftbar-theme] .side-nav .side-nav-link {
	margin: 1px 0;
	padding: 6px 16px;
	border-radius: var(--eu-radius-sm);
	color: var(--eu-side-text);
	font-size: 14px;
	font-weight: 500;
	transition: background .2s, color .2s;
}
body.eu-panelix .side-nav .side-nav-link i { color: var(--eu-accent); }
body.eu-panelix .side-nav .side-nav-link,
body.eu-panelix .side-nav .side-nav-link * { font-weight: 500 !important; }
body.eu-panelix .side-nav .side-nav-link.active *,
body.eu-panelix .side-nav .side-nav-link[rel="active"] *,
body.eu-panelix .side-nav .mm-active > a * { color: inherit !important; font-weight: 600 !important; }
body.eu-panelix .side-nav .side-nav-link.active i,
body.eu-panelix .side-nav .side-nav-link[rel="active"] i,
body.eu-panelix .side-nav .mm-active > a i { color: var(--eu-accent) !important; }
body.eu-panelix .side-nav .menu-arrow { right: 14px; }
body.eu-panelix[data-leftbar-theme] .side-nav .side-nav-link:hover,
body.eu-panelix[data-leftbar-theme] .side-nav .side-nav-link:focus,
body.eu-panelix[data-leftbar-theme] .side-nav .side-nav-link[rel="active"],
body.eu-panelix[data-leftbar-theme] .side-nav .mm-active > a {
	background: var(--eu-white);
	color: var(--eu-accent-dark) !important;
	box-shadow: var(--eu-shadow-card);
}
body.eu-panelix[data-leftbar-theme] .side-nav .side-nav-link[rel="active"],
body.eu-panelix[data-leftbar-theme] .side-nav .mm-active > a { font-weight: 600; }
body.eu-panelix[data-leftbar-theme] .side-nav .side-nav-second-level li a,
body.eu-panelix[data-leftbar-theme] .side-nav .side-nav-third-level li a {
	padding: 7px 16px 7px 46px;
	border-radius: var(--eu-radius-sm);
	color: var(--eu-side-text);
	font-size: 13px;
}
body.eu-panelix[data-leftbar-theme] .side-nav .side-nav-second-level li a:hover,
body.eu-panelix[data-leftbar-theme] .side-nav .side-nav-second-level li a[rel="active"],
body.eu-panelix[data-leftbar-theme] .side-nav .side-nav-second-level li.mm-active > a,
body.eu-panelix[data-leftbar-theme] .side-nav .side-nav-second-level li.active > a { color: var(--eu-accent-dark) !important; font-weight: 600; }
body.eu-panelix .side-nav .badge { border-radius: 10px; }
/* Icônes du menu : jamais de gras. styles-admin.css met 900 (et ce thème 600) sur le contenu des liens actifs/survolés :
   une police d'icônes n'ayant qu'une graisse, le navigateur simule le gras en dédoublant le pictogramme */
body.eu-panelix .side-nav .side-nav-link i,
body.eu-panelix .side-nav .side-nav-link.active i,
body.eu-panelix .side-nav .side-nav-link:hover i,
body.eu-panelix .side-nav .side-nav-link:focus i,
body.eu-panelix .side-nav .side-nav-link[rel="active"] i,
body.eu-panelix .side-nav .mm-active > a i,
body.eu-panelix .side-nav .side-nav-second-level li a i { font-weight: 400 !important; font-synthesis: none; text-shadow: none !important; }

/* Menu replié : survol en blanc au lieu du dégradé violet */
body.eu-panelix[data-leftbar-compact-mode="condensed"] .side-nav { padding: 8px 0 0; }
/* styles-admin.css met chaque liste du menu en position fixe en mode replié : la liste principale et celle des aides
   se superposent alors en haut. On fixe le menu entier et on laisse les listes s'enchaîner. */
body.eu-panelix[data-leftbar-compact-mode="condensed"] .wrapper .left-side-menu { position: fixed; top: 0; bottom: 0; }
body.eu-panelix[data-leftbar-compact-mode="condensed"] .side-nav { position: static !important; }
/* Mode replié : le conteneur de défilement (simplebar) ne doit rien couper, sinon libellés et sous-menus survolés sont tronqués */
body.eu-panelix[data-leftbar-compact-mode="condensed"] .left-side-menu,
body.eu-panelix[data-leftbar-compact-mode="condensed"] #left-side-menu-container,
body.eu-panelix[data-leftbar-compact-mode="condensed"] .left-side-menu .simplebar-wrapper,
body.eu-panelix[data-leftbar-compact-mode="condensed"] .left-side-menu .simplebar-mask,
body.eu-panelix[data-leftbar-compact-mode="condensed"] .left-side-menu .simplebar-offset,
body.eu-panelix[data-leftbar-compact-mode="condensed"] .left-side-menu .simplebar-content-wrapper,
body.eu-panelix[data-leftbar-compact-mode="condensed"] .left-side-menu .simplebar-content { overflow: visible !important; }
body.eu-panelix[data-leftbar-compact-mode="condensed"] .side-nav .side-nav-item:hover { z-index: 20; }
/* Mode replié : pas d'encart "projet sélectionné" (comme le thème d'origine) */
body.eu-panelix[data-leftbar-compact-mode="condensed"] .left-side-menu .help-box { display: none !important; }
body.eu-panelix[data-leftbar-compact-mode="condensed"] .side-nav ~ .side-nav { margin: 8px 13px 0; padding: 8px 0 0; border-top: 1px solid var(--eu-side-border); }
body.eu-panelix[data-leftbar-compact-mode="condensed"] .side-nav ~ .side-nav .side-nav-item .side-nav-link { margin-left: 0; margin-right: 0; }
body.eu-panelix[data-leftbar-compact-mode="condensed"] .side-nav .side-nav-item .side-nav-link {
	display: flex; align-items: center;
	min-height: 40px; margin: 2px 13px; padding: 0 12px;
	border-radius: var(--eu-radius-sm); box-shadow: none;
}
body.eu-panelix[data-leftbar-compact-mode="condensed"] .side-nav .side-nav-item .side-nav-link i { margin: 0; font-size: 18px; }
body.eu-panelix[data-leftbar-compact-mode="condensed"] .side-nav .side-nav-item:hover .side-nav-link { width: 260px; }
body.eu-panelix[data-leftbar-compact-mode="condensed"] .side-nav .side-nav-item:hover .side-nav-link span { padding-left: 14px; }
body.eu-panelix[data-leftbar-compact-mode="condensed"] .side-nav .side-nav-item:hover > ul { left: 57px; border-radius: 0 var(--eu-radius-sm) var(--eu-radius-sm) 0; }
body.eu-panelix[data-leftbar-compact-mode="condensed"] .side-nav .side-nav-item:hover .side-nav-link,
body.eu-panelix[data-leftbar-compact-mode="condensed"] .side-nav .side-nav-item:hover > ul {
	background: var(--eu-white);
	color: var(--eu-accent-dark) !important;
	box-shadow: var(--eu-shadow-md);
}

/* Encart "projet sélectionné" */
body.eu-panelix .left-side-menu .help-box {
	margin: 0 4px 6px !important;
	padding: 16px;
	border-radius: var(--eu-radius);
	background: linear-gradient(135deg, var(--eu-accent) 0%, var(--eu-accent-dark) 100%) !important;
	box-shadow: var(--eu-shadow-md);
}
body.eu-panelix .left-side-menu .help-box .btn-outline-light { border-radius: var(--eu-radius-sm); }


/* ---------- Barre du haut ---------- */
body.eu-panelix .navbar-custom {
	background: var(--eu-white) !important;
	background-image: none !important;
	border-bottom: 1px solid var(--eu-border);
	box-shadow: none !important;
}
body.eu-panelix .navbar-custom .page-title {
	margin-left: 0 !important;
	padding: 0 !important;
	line-height: 70px;
	background: transparent !important;
	color: var(--eu-text-dark) !important;
	font-family: var(--eu-font-display);
	font-size: 22px;
	font-weight: 400;
	text-transform: none !important;
	letter-spacing: 0;
}
body.eu-panelix .navbar-custom .page-title > i { color: var(--eu-accent); }
body.eu-panelix .navbar-custom .page-title span { color: var(--eu-text); font-family: var(--eu-font); font-size: 14px; }
body.eu-panelix .navbar-custom .noti-icon { color: var(--eu-text); }
body.eu-panelix .navbar-custom .account-position { border-radius: 20px !important; background: var(--eu-accent-light) !important; color: var(--eu-accent-dark) !important; font-size: 12px; }
body.eu-panelix .navbar-custom .account-user-name { color: var(--eu-accent) !important; }
body.eu-panelix .button-menu-mobile { color: var(--eu-text-dark); }

/* ---------- Barre du haut "maquette" : bouton menu à gauche, profil à droite (fichiers top.ihtml des 4 espaces) ---------- */
/* styles-admin.css impose 60px et padding 0 en !important : on réaligne sur la hauteur du bloc logo (70px) */
body.eu-panelix .navbar-custom { display: flex; align-items: center; box-sizing: border-box; height: 70px !important; min-height: 70px !important; padding: 0 24px !important; }
body.eu-panelix .left-side-menu .logo { box-sizing: border-box; height: 70px; line-height: 69px; overflow: hidden; }
body.eu-panelix .navbar-custom .eu-menu-toggle {
	display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0;
	width: 40px; height: 40px; margin: 0 16px 0 0; padding: 0; float: none;
	border: 0; border-radius: var(--eu-radius-sm);
	background: var(--eu-bg); color: var(--eu-text-dark); font-size: 20px; line-height: 1;
	transition: background .2s, color .2s;
}
body.eu-panelix .navbar-custom .eu-menu-toggle:hover { background: var(--eu-accent-light); color: var(--eu-accent-dark); }
body.eu-panelix .navbar-custom .topbar-right-menu { display: flex; align-items: center; gap: 4px; margin-left: auto; float: none !important; }
body.eu-panelix .navbar-custom .topbar-right-menu > li { float: none; }
body.eu-panelix .navbar-custom .notification-list .nav-link {
	display: flex; align-items: center; justify-content: center;
	width: 40px; height: 40px; min-height: 0; margin: 0; padding: 0 !important;
	border-radius: var(--eu-radius-sm); line-height: 1;
}
body.eu-panelix .navbar-custom .notification-list .nav-link:hover { background: var(--eu-bg); }
body.eu-panelix .navbar-custom .noti-icon { font-size: 20px; line-height: 1; vertical-align: middle; }
body.eu-panelix .navbar-custom .noti-icon-badge { top: 0 !important; right: -2px !important; }
/* Cloche collée aux réglages : rien dans la barre ne doit occuper de place hormis les boutons (les menus déroulants flottent) */
body.eu-panelix .navbar-custom .topbar-right-menu > li { position: relative; width: auto !important; margin: 0 !important; }
body.eu-panelix .navbar-custom .topbar-right-menu .dropdown-menu { position: absolute !important; top: 100% !important; right: 0 !important; left: auto !important; }
body.eu-panelix .navbar-custom .topbar-right-menu .dropdown-menu:not(.show) { display: none !important; }
/* Profil : avatar + nom + rôle */
body.eu-panelix .navbar-custom .notification-list .nav-link.nav-user {
	display: flex; align-items: center; gap: 10px;
	width: auto; height: 50px; margin-left: 8px; padding: 0 10px 0 6px !important;
	border: 0; border-radius: 25px; background: transparent; min-height: 0;
}
body.eu-panelix .navbar-custom .nav-link.nav-user:hover { background: var(--eu-bg); }
body.eu-panelix .eu-avatar {
	display: flex; align-items: center; justify-content: center; flex-shrink: 0;
	width: 38px; height: 38px; border-radius: 50%;
	background: var(--eu-accent); color: #fff; font-size: 13px; font-weight: 700;
}
body.eu-panelix .eu-profile-info { display: flex; flex-direction: column; line-height: 1.25; text-align: left; }
body.eu-panelix .eu-profile-name { color: var(--eu-text-dark); font-size: 13px; font-weight: 600; white-space: nowrap; }
body.eu-panelix .eu-profile-role { color: var(--eu-text-muted); font-size: 11px; white-space: nowrap; }
body.eu-panelix .eu-profile-caret { color: var(--eu-text-muted); font-size: 16px; }
@media (max-width: 767.98px) { body.eu-panelix .eu-profile-info, body.eu-panelix .eu-profile-caret { display: none; } }

/* Titre de page (MO, MOE, Entreprise) et blocs intermédiaires dans la barre flex */
body.eu-panelix .navbar-custom .page-title { float: none !important; flex: 0 1 auto; min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
body.eu-panelix .navbar-custom > ul:not(.topbar-right-menu) { float: none !important; margin: 0 0 0 24px !important; }
body.eu-panelix .navbar-custom .nav-user-logo .nav-user { display: flex; align-items: center; height: 70px; padding: 0 8px; border: 0; background: transparent; }
body.eu-panelix .navbar-custom .nav-user-logo img { max-height: 40px; width: auto; }
body.eu-panelix .navbar-custom .topbar-right-menu > li.dropdown { display: flex; align-items: center; }
body.eu-panelix .navbar-custom #entrepriseSwitch { max-width: 220px; height: 34px; margin-right: 8px; padding: 0 8px !important; border: 1px solid var(--eu-border); border-radius: var(--eu-radius-sm); background: var(--eu-white); color: var(--eu-text-dark); font-size: 12px; box-shadow: none !important; }
/* ---------- Menu latéral : sans barre de défilement ni visuel de fond ---------- */
body.eu-panelix .left-side-menu .simplebar-track,
body.eu-panelix .left-side-menu .simplebar-scrollbar { display: none !important; }
body.eu-panelix .left-side-menu,
body.eu-panelix .left-side-menu .simplebar-content-wrapper { scrollbar-width: none; -ms-overflow-style: none; }
body.eu-panelix .left-side-menu ::-webkit-scrollbar,
body.eu-panelix .left-side-menu::-webkit-scrollbar { display: none; width: 0; }
body.eu-panelix .left-side-menu::after, body.eu-panelix .left-side-menu::before { display: none !important; background: none !important; }

/* ---------- Titres ---------- */
body.eu-panelix h1, body.eu-panelix .h1,
body.eu-panelix .page-title-box .page-title { font-family: var(--eu-font-display); font-weight: 400; color: var(--eu-text-dark); }
body.eu-panelix .page-title-box .page-title { font-size: 20px; line-height: 60px; }
/* Titre de page en doublon sous la barre du haut (le titre est déjà affiché dans la barre) : seul le fil d'Ariane reste */
body.eu-panelix:is(.eu-mo, .eu-moe) .content-page .page-title-box > .page-title { display: none; }
body.eu-panelix .header-title, body.eu-panelix .card-title { color: var(--eu-text-dark); font-weight: 600; letter-spacing: 0; }

/* ---------- Cartes ---------- */
body.eu-panelix .card {
	border: 1px solid var(--eu-border);
	border-radius: var(--eu-radius);
	box-shadow: var(--eu-shadow-card);
}
body.eu-panelix .card-header { background: transparent; border-bottom: 1px solid var(--eu-border); }
body.eu-panelix .card-header:first-child { border-radius: var(--eu-radius) var(--eu-radius) 0 0; }
body.eu-panelix .card-footer { background: transparent; border-top: 1px solid var(--eu-border); }
/* Pas de trait en haut des blocs : styles-admin.css met une bordure haute sur tous les .card-body (séparateurs sous un en-tête conservés) */
body.eu-panelix .card > .card-body:first-child { border-top: 0; }
/* Pièces du DCE : pas de filet sous le dernier fichier de la carte (séparateurs entre fichiers conservés) */
.dce-file-row:last-child { border-bottom: 0 !important; }
/* Historique des emails : couleur de chaque profil (nouvelle charte), ligne en pastel et cellule "Profil" en plein.
   1 admin, 2 MO, 3 MOE, 4 / 7 entreprise (équipier), 6 observateur, valideur (cf. eu_mail.php "profil_id") */
body.eu-panelix tr[class*="eu-mail-p-"] { --eu-mail: 100, 116, 139; }
body.eu-panelix tr.eu-mail-p-1 { --eu-mail: 29, 63, 102; }
body.eu-panelix tr.eu-mail-p-2 { --eu-mail: 155, 34, 67; }
body.eu-panelix tr.eu-mail-p-3 { --eu-mail: 236, 122, 22; }
body.eu-panelix tr.eu-mail-p-4, body.eu-panelix tr.eu-mail-p-7 { --eu-mail: 58, 167, 174; }
body.eu-panelix tr.eu-mail-p-6 { --eu-mail: 100, 116, 139; }
body.eu-panelix tr.eu-mail-p-valideur { --eu-mail: 139, 92, 246; }
body.eu-panelix tr[class*="eu-mail-p-"],
body.eu-panelix tr[class*="eu-mail-p-"] > td { background-color: rgba(var(--eu-mail), .12) !important; }
body.eu-panelix tr[class*="eu-mail-p-"] > td.classProfil { background-color: rgb(var(--eu-mail)) !important; color: #fff !important; font-size: 12px; font-weight: 600; letter-spacing: .02em; }

/* ---------- Couleur principale de l'espace ---------- */
body.eu-panelix .bg-primary { background-color: var(--eu-accent) !important; }
body.eu-panelix .text-primary { color: var(--eu-accent) !important; }
body.eu-panelix .border-primary { border-color: var(--eu-accent) !important; }
body.eu-panelix .badge-primary { background-color: var(--eu-accent); }
body.eu-panelix .badge-primary-lighten { background-color: var(--eu-accent-light); color: var(--eu-accent-dark); }
body.eu-panelix .bg-primary-lighten { background-color: var(--eu-accent-light) !important; }
body.eu-panelix .btn-primary,
body.eu-panelix .btn-primary:not(:disabled):not(.disabled):active,
body.eu-panelix .btn-primary:not(:disabled):not(.disabled).active {
	background-color: var(--eu-accent);
	border-color: var(--eu-accent);
	box-shadow: 0 2px 6px 0 rgba(var(--eu-accent-rgb), .35);
}
body.eu-panelix .btn-primary:hover, body.eu-panelix .btn-primary:focus { background-color: var(--eu-accent-dark); border-color: var(--eu-accent-dark); }
body.eu-panelix .btn-outline-primary { color: var(--eu-accent); border-color: var(--eu-accent); }
body.eu-panelix .btn-outline-primary:hover { background-color: var(--eu-accent); border-color: var(--eu-accent); color: #fff; }
body.eu-panelix .page-item.active .page-link { background-color: var(--eu-accent); border-color: var(--eu-accent); }
body.eu-panelix .custom-control-input:checked ~ .custom-control-label::before { background-color: var(--eu-accent); border-color: var(--eu-accent); }
body.eu-panelix .nav-pills .nav-link.active, body.eu-panelix .nav-pills .show > .nav-link { background-color: var(--eu-accent); }
body.eu-panelix .nav-tabs .nav-link.active { color: var(--eu-accent-dark); border-bottom-color: var(--eu-accent); }

/* ---------- Boutons, formulaires, badges ---------- */
body.eu-panelix .btn:not(.btn-circle):not(.btn-rounded) { border-radius: var(--eu-radius-sm); }
body.eu-panelix .btn { font-weight: 500; }
body.eu-panelix .form-control,
body.eu-panelix .custom-select,
body.eu-panelix .select2-container--bootstrap4 .select2-selection { border-color: var(--eu-border); border-radius: var(--eu-radius-sm); }
body.eu-panelix .form-control:focus,
body.eu-panelix .custom-select:focus,
body.eu-panelix .select2-container--bootstrap4.select2-container--focus .select2-selection {
	border-color: var(--eu-accent);
	box-shadow: 0 0 0 3px rgba(var(--eu-accent-rgb), .15);
}
/* Bouton "effacer" des select2 : centré verticalement quelle que soit la hauteur du champ (styles-admin.css le place à top: 15px fixe) */
body.eu-panelix .select2-container--bootstrap4 .select2-selection--single .select2-selection__clear {
	top: 50% !important; transform: translateY(-50%);
	display: flex; align-items: center; justify-content: center;
	width: 20px; height: 20px; line-height: 1; font-size: 18px;
	border-color: var(--eu-accent); color: var(--eu-accent); border-radius: 4px;
}
/* Boutons "+" (ajouter) accolés à un champ : angles carrés à gauche (contre le champ), arrondis à droite */
body.eu-panelix .input-group-append > .btn:has(> .uil-plus, > .mdi-plus, > .fa-plus) {
	border-radius: 0 var(--eu-radius-sm) var(--eu-radius-sm) 0 !important;
}
body.eu-panelix .badge { border-radius: 6px; font-weight: 600; }

/* ---------- Tableaux ---------- */
body.eu-panelix .table thead th {
	background: var(--eu-bg);
	border-bottom: 1px solid var(--eu-border);
	color: #64748b;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .03em;
	text-transform: uppercase;
}
body.eu-panelix .table td, body.eu-panelix .table th { border-top-color: var(--eu-border); }
body.eu-panelix .table-hover tbody tr:hover { background-color: var(--eu-accent-light); }

/* ---------- Fenêtres, menus déroulants ---------- */
body.eu-panelix .modal-content { border: 0; border-radius: var(--eu-radius); box-shadow: 0 10px 30px rgba(0, 0, 0, .1); }
body.eu-panelix .dropdown-menu { border: 1px solid var(--eu-border); border-radius: var(--eu-radius-sm); box-shadow: var(--eu-shadow-md); }
body.eu-panelix .dropdown-item:hover, body.eu-panelix .dropdown-item:focus { background-color: var(--eu-accent-light); color: var(--eu-accent-dark); }

/* ---------- Fil d'Ariane ---------- */
body.eu-panelix .breadcrumb { font-size: 13px; }

/* ---------- Pied de page ---------- */
body.eu-panelix .footer { border-top: 1px solid var(--eu-border); background: var(--eu-white); color: var(--eu-text-muted); font-size: 12px; }
body.eu-panelix .footer a, body.eu-panelix .footer * { font-size: 12px; }
/* styles-admin.css impose 124px de haut (et d'interligne) : pied de page compact sur une ligne */
body.eu-panelix .footer { height: auto !important; min-height: 0 !important; line-height: 1.5 !important; padding: 10px 24px !important; }
body.eu-panelix .footer .row { align-items: center; }
body.eu-panelix .footer .footer-links a { margin-left: 1.25rem; color: var(--eu-text-muted); }
body.eu-panelix .footer .footer-links a:hover { color: var(--eu-accent-dark); }
/* Conteneur fixe du pied de page (MO, MOE, Entreprise) : sans hauteur minimale ni fond propre */
body.eu-panelix .position-fixed:has(> footer) { min-height: 0 !important; background: transparent !important; box-shadow: none !important; }

/* =====================================================================
   ÉCRANS DE CONNEXION (body.bg1_log MO / bg2_log admin / bg3_log MOE / bg4_log entreprise)
   Fond clair pastel de l'espace, nouveau logo (picto du profil à droite du logo, cf. top_logon.ihtml)
   ===================================================================== */
body.eu-panelix.bg1_log, body.eu-panelix.bg2_log, body.eu-panelix.bg3_log, body.eu-panelix.bg4_log {
	background: linear-gradient(135deg, #fff 0%, var(--eu-side) 100%) fixed !important;
	min-height: 100vh;
}

body.eu-panelix .eu-logon-logo { width: 150px; max-width: 45vw; height: auto; margin-top: 3vh; }

/* Carte de connexion façon Panelix : blanche, en-tête clair à la couleur de l'espace */
body.eu-panelix[class*="_log"] .account-pages .card { border: 1px solid var(--eu-border); border-radius: 16px; box-shadow: 0 10px 30px rgba(0, 0, 0, .08) !important; overflow: hidden; }
body.eu-panelix[class*="_log"] .account-pages .card-header,
body.eu-panelix[class*="_log"] .account-pages .card-footer {
	background: var(--eu-side) !important;
	background-image: none !important;
	border-color: var(--eu-side-border) !important;
}
body.eu-panelix[class*="_log"] .account-pages .card-header { border-bottom: 1px solid var(--eu-side-border); }
body.eu-panelix[class*="_log"] .account-pages .card-footer { border-top: 1px solid var(--eu-side-border); }
body.eu-panelix[class*="_log"] .account-pages .card-header:empty { display: none; }
body.eu-panelix[class*="_log"] .account-pages .card-header h4 {
	margin: 4px 0;
	color: var(--eu-accent-dark) !important;
	font-family: var(--eu-font-display);
	font-size: 20px;
	font-weight: 400 !important;
	text-transform: none !important;
}
body.eu-panelix[class*="_log"] .account-pages .card-header h4::first-letter { text-transform: uppercase; }
body.eu-panelix[class*="_log"] .account-pages .btn-primary,
body.eu-panelix[class*="_log"] .account-pages .btn-dark,
body.eu-panelix[class*="_log"] .account-pages button[type="submit"] { background-color: var(--eu-accent); border-color: var(--eu-accent); color: #fff; }
body.eu-panelix[class*="_log"] .account-pages .form-control { box-shadow: none !important; }

/* Textes et pied de page lisibles sur fond clair */
body.eu-panelix[class*="_log"] footer,
body.eu-panelix[class*="_log"] footer * { color: var(--eu-text) !important; text-shadow: none !important; }
body.eu-panelix[class*="_log"] footer a { color: var(--eu-accent-dark) !important; }
/* Pied de page en bandeau pastel */
body.eu-panelix[class*="_log"] footer { left: 0; right: 0; width: 100%; padding: 14px 0; background: var(--eu-side) !important; border-top: 1px solid var(--eu-side-border); font-size: 12px; }
body.eu-panelix[class*="_log"] .text-white:not(.btn):not(.badge),
body.eu-panelix[class*="_log"] .text-light:not(.btn):not(.badge) { color: var(--eu-text-dark) !important; }

/* Fond animé des écrans de connexion : ville futuriste + rayons (parallaxe) et epsilon 3D, repris du hero du site vitrine (v2.css) */
.eu-logon-backdrop {
	--highlight: #64c2c8;
	--primary: #1b9cd8;
	--hero-parallax: 0;
	position: fixed; inset: 0; z-index: 0;
	overflow: hidden; pointer-events: none;
}
.eu-logon-backdrop .hero-backdrop-layer { position: absolute; inset: 0 -2rem; will-change: transform; }
.eu-logon-backdrop .hero-rays { position: absolute; inset: 0; width: 100%; height: 100%; }
.eu-logon-backdrop .hero-city { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: center; transform: translateY(5px); }
/* Ville nette : pas d'agrandissement (scale), décalage arrondi au pixel une fois la parallaxe arrêtée (cf. JS),
   débordement limité à 12px (la parallaxe du ciel est de 10px au plus) pour ne pas étirer l'image */
.eu-logon-backdrop .hero-backdrop-sky { inset: 0 -12px; clip-path: inset(0 0 47% 0); transform: translate3d(calc(var(--hero-parallax) * -10px), 0, 0); }
.eu-logon-backdrop .hero-backdrop-ground { clip-path: inset(51.5% 0 0 0); transform: translate3d(calc(var(--hero-parallax) * -28px), 0, 0) scale(1.045); }
.eu-logon-backdrop::after { content: ""; position: absolute; inset: 0; background: radial-gradient(60% 70% at 35% 45%, rgba(255, 255, 255, .78) 0%, rgba(255, 255, 255, .35) 55%, transparent 100%); }

/* Epsilon réduit de 25 % (la taille du modèle suit celle de son conteneur : 44vw x 78vh à l'origine), centré sur la même zone */
.eu-logon-epsilon { position: fixed; top: 19.75vh; right: 0; z-index: 0; width: 33vw; height: 58.5vh; }
.eu-logon-epsilon .epsilon-canvas { position: absolute; inset: 0; cursor: ew-resize; touch-action: pan-y; }
.eu-logon-epsilon .epsilon-canvas canvas { display: block; width: 100%; height: 100%; background: transparent; }

/* Contenu de la page au-dessus du fond */
body.eu-panelix[class*="_log"] .account-pages,
body.eu-panelix[class*="_log"] .eu-logon-logo,
body.eu-panelix[class*="_log"] .dropdown,
body.eu-panelix[class*="_log"] footer { position: relative; z-index: 2; }
body.eu-panelix[class*="_log"] .account-pages { pointer-events: none; }
body.eu-panelix[class*="_log"] .account-pages .card { pointer-events: auto; }

@media (max-width: 991.98px) { .eu-logon-epsilon { display: none; } }
@media (prefers-reduced-motion: reduce) {
	.eu-logon-backdrop .hero-backdrop-sky { transform: none; }
	.eu-logon-backdrop .hero-backdrop-ground { transform: scale(1.045); }
}

/* =====================================================================
   Espace MO : bordeaux (#C7596E) codé en dur dans styles-admin.css remplacé par la couleur de l'espace
   (la couleur principale de l'ancien thème est fixée au bleu MO dans eu-mo/index.php)
   ===================================================================== */
body.eu-panelix.eu-mo #progressbar { color: rgba(var(--eu-accent-rgb), .8); }
body.eu-panelix.eu-mo #progressbar li:after { background: rgba(var(--eu-accent-rgb), .2); }
body.eu-panelix.eu-mo .filter_statut .btn.active,
body.eu-panelix.eu-mo .filter_type .btn.active { background-color: var(--eu-accent) !important; }
body.eu-panelix.eu-mo .bootstrap-datetimepicker-widget .timepicker .timepicker-picker a.btn,
body.eu-panelix.eu-mo .daterangepicker .month,
body.eu-panelix.eu-mo .daterangepicker .year { color: var(--eu-accent) !important; }
body.eu-panelix.eu-mo .pulse-client { box-shadow: 0 0 0 0 rgba(var(--eu-accent-rgb), .7); animation-name: eu_pulse_accent; }
@keyframes eu_pulse_accent {
	0% { box-shadow: 0 0 0 0 rgba(var(--eu-accent-rgb), .7); }
	70% { box-shadow: 0 0 0 10px rgba(var(--eu-accent-rgb), 0); }
	100% { box-shadow: 0 0 0 0 rgba(var(--eu-accent-rgb), 0); }
}

/* =====================================================================
   ASSISTANT PROJET (création / consultation / archivage) : style "dashboard Panelix"
   Gabarits : p_projet_add.ihtml, menu.ihtml, p_projet_form1..5 (MO et MOE)
   ===================================================================== */

/* Boutons Synthèse / Forum en tête des pages projet (assistant, synthèse, consultation, offres, DCE, attribution, archive, forum) : boutons clairs au lieu des grosses cartes colorées */
body.eu-panelix :is(.card.btn_projview, a[href$="/projet/view/"] > .card),
body.eu-panelix :is(.card.btn_forum, a[href$="/forum/list/"] > .card) {
	border: 0;
	border-radius: var(--eu-radius-sm);
	box-shadow: 0 4px 12px rgba(0, 0, 0, .10);
	transition: transform .2s, box-shadow .2s;
}
/* Fond de couleur comme le bouton Forum de la page synthèse : Synthèse = couleur de l'espace, Forum = rose */
body.eu-panelix :is(.card.btn_projview, a[href$="/projet/view/"] > .card) { background: var(--eu-accent) !important; }
body.eu-panelix :is(.card.btn_forum, a[href$="/forum/list/"] > .card) { background: #fa5c7c !important; }
body.eu-panelix :is(.card.btn_projview, a[href$="/projet/view/"] > .card):hover,
body.eu-panelix :is(.card.btn_forum, a[href$="/forum/list/"] > .card):hover { transform: translateY(-2px); box-shadow: var(--eu-shadow-md); }
body.eu-panelix :is(.card.btn_projview, a[href$="/projet/view/"] > .card) .toll-free-box,
body.eu-panelix :is(.card.btn_forum, a[href$="/forum/list/"] > .card) .toll-free-box { padding: 6px 0; }
body.eu-panelix :is(.card.btn_projview, a[href$="/projet/view/"] > .card) h4,
body.eu-panelix :is(.card.btn_forum, a[href$="/forum/list/"] > .card) h4 { margin: 0; color: #fff; font-size: 14px; font-weight: 600; text-transform: none; letter-spacing: 0; }
body.eu-panelix :is(.card.btn_projview, a[href$="/projet/view/"] > .card) .toll-free-box i,
body.eu-panelix :is(.card.btn_forum, a[href$="/forum/list/"] > .card) .toll-free-box i { position: static; display: inline-block; margin-right: 6px; font-size: 18px; opacity: 1; transform: none; vertical-align: -2px; color: #fff; }

/* Onglets Création / Consultation / Archivage */
/* Pas de filet sous les onglets : la carte placée dessous a déjà sa bordure haute (évite le double filet) */
body.eu-panelix .nav-tabs.nav-bordered { border-bottom: 0; margin-bottom: 0; }
body.eu-panelix .nav-tabs.nav-bordered .nav-item { box-shadow: none !important; margin-bottom: 0; }
body.eu-panelix .nav-tabs.nav-bordered .nav-link { padding: 10px 16px !important; border: 0; border-bottom: 2px solid transparent; background: transparent; color: var(--eu-text-muted); }
body.eu-panelix .nav-tabs.nav-bordered .nav-link h5 { color: inherit; font-size: 13px; font-weight: 600 !important; letter-spacing: .04em; }
body.eu-panelix .nav-tabs.nav-bordered .nav-link:hover { color: var(--eu-text-dark); }
body.eu-panelix .nav-tabs.nav-bordered .nav-link.active { border-bottom-color: var(--eu-accent); color: var(--eu-accent-dark); background: transparent; }

/* Étapes : cercles clairs, étape faite en couleur de l'espace, étape en cours pleine */
body.eu-panelix #progressbar { color: var(--eu-text-muted) !important; }
body.eu-panelix #progressbar li { font-size: 13px; font-weight: 500; letter-spacing: .02em; }
body.eu-panelix #progressbar li:before {
	width: 42px; height: 42px; line-height: 36px; padding: 0;
	border: 2px solid var(--eu-border);
	background: var(--eu-white);
	color: var(--eu-text-muted);
	font-size: 22px;
	box-shadow: var(--eu-shadow-card);
}
body.eu-panelix #progressbar li:after { top: 21px; height: 2px; background: var(--eu-border) !important; }
body.eu-panelix #progressbar li.active { color: var(--eu-text-dark); }
body.eu-panelix #progressbar li.active:before { border-color: var(--eu-accent); background: var(--eu-accent-light); color: var(--eu-accent-dark); }
body.eu-panelix #progressbar li.active:after { background: var(--eu-accent) !important; }
body.eu-panelix #progressbar li.current:before { border: 2px solid var(--eu-accent); background: var(--eu-accent); color: #fff; box-shadow: 0 0 0 5px rgba(var(--eu-accent-rgb), .15); }
body.eu-panelix #progressbar li .titre { display: inline-block; margin-top: 4px; padding: 2px 10px !important; border-radius: 20px !important; }
body.eu-panelix #progressbar li.current .titre { background: var(--eu-accent-light) !important; color: var(--eu-accent-dark) !important; font-weight: 600; }

/* Cadre de l'assistant */
body.eu-panelix #Projet h5 { color: var(--eu-text-dark); font-size: 13px; font-weight: 600; letter-spacing: .04em; }
body.eu-panelix #Projet .badge { padding: 4px 10px; border-radius: 20px; font-size: 11px; }

/* Tuiles de chiffres de l'étape 5 : rendu et disposition de la page de synthèse (cf. p_projet_form5_content.ihtml) */

/* Boutons de lancement (RFP / RFI) : boutons pleins arrondis, icône à gauche */
body.eu-panelix #Projet .card[role="button"] {
	border: 0;
	border-radius: var(--eu-radius);
	background-image: none !important;
	box-shadow: 0 4px 14px rgba(0, 0, 0, .10);
	transition: transform .2s, box-shadow .2s;
}
body.eu-panelix #Projet .card[role="button"]:hover { transform: translateY(-2px); box-shadow: 0 8px 22px rgba(0, 0, 0, .14); }
body.eu-panelix #Projet .card[role="button"].bg-success { background-color: #10b981 !important; }
body.eu-panelix #Projet .card[role="button"].bg-info { background-color: var(--eu-accent) !important; }
body.eu-panelix #Projet .card[role="button"] .toll-free-box h4 { margin: 6px 0; font-size: 15px; font-weight: 600; letter-spacing: .02em; }
body.eu-panelix #Projet .card[role="button"] .toll-free-box h4 .font-16 { font-size: 12px !important; opacity: .85; }
body.eu-panelix #Projet .card[role="button"] .toll-free-box i { left: 18px; bottom: auto; top: 50%; font-size: 28px; opacity: .35; transform: translateY(-50%); }

/* Encart "projet sélectionné" du menu : le ruban d'angle "Sélection" devient une pastille (il recouvrait le nom du projet) */
/* Encart sélection : picto à gauche de la pastille "Sélection", sur la même ligne, puis titre et bouton */
body.eu-panelix .left-side-menu .help-box { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; padding: 12px 14px 14px; }
body.eu-panelix .left-side-menu .help-box > .mdi { order: 1; margin: 0 8px 0 0 !important; font-size: 20px !important; line-height: 1; }
body.eu-panelix .left-side-menu .help-box > .ribbon-two { order: 2; }
body.eu-panelix .left-side-menu .help-box > h5 { order: 3; width: 100%; }
body.eu-panelix .left-side-menu .help-box > .btn { order: 4; }
body.eu-panelix .left-side-menu .help-box .ribbon-two { position: static; width: auto; height: auto; margin: 0; overflow: visible; text-align: center; }
body.eu-panelix .left-side-menu .help-box .ribbon-two span {
	position: static; display: inline-block; width: auto; padding: 2px 10px;
	border-radius: 20px; background: rgba(255, 255, 255, .9) !important;
	color: var(--eu-accent-dark) !important;
	font-size: 10px; font-weight: 700; line-height: 1.6; letter-spacing: .06em; text-transform: uppercase;
	transform: none; box-shadow: none;
}
body.eu-panelix .left-side-menu .help-box .ribbon-two span:before,
body.eu-panelix .left-side-menu .help-box .ribbon-two span:after { display: none; }
body.eu-panelix .left-side-menu .help-box h5 { margin-top: 6px !important; font-size: 13px; line-height: 1.35; overflow-wrap: anywhere; }
/* Texte du bloc Sélection toujours blanc, y compris quand son lien est marqué actif (page Synthèse du projet sélectionné) */
body.eu-panelix .left-side-menu a:has(> .help-box),
body.eu-panelix .left-side-menu a:has(> .help-box).active { opacity: 1; }
body.eu-panelix .left-side-menu .help-box > .mdi,
body.eu-panelix .left-side-menu .help-box h5,
body.eu-panelix .left-side-menu .help-box h5 small,
body.eu-panelix .left-side-menu .help-box .btn-outline-light { color: #fff !important; opacity: 1; }
body.eu-panelix .left-side-menu .help-box h5 small { opacity: .8; }
body.eu-panelix .left-side-menu .help-box .btn-outline-light { border-color: rgba(255, 255, 255, .85) !important; }

/* Bloc Planning / Dates effectives de la synthèse projet : texte resserré (Inter est plus large que l'ancienne police) */
body.eu-panelix .cta-box.bg-secondary .toll-free-box h4 { padding: 10px 0; font-size: 13px; line-height: 1.5; }
body.eu-panelix .cta-box.bg-secondary .toll-free-box .font-16.ls-lg { font-size: 12px !important; letter-spacing: 0 !important; opacity: .85; }
body.eu-panelix .cta-box.bg-secondary .toll-free-box h5.ls-lg { margin-bottom: 6px !important; font-size: 11px !important; letter-spacing: .08em !important; }
body.eu-panelix .cta-box.bg-secondary .toll-free-box .row > div { padding-top: 3px; padding-bottom: 3px; white-space: nowrap; }

/* Cartes projet (#PO : assistant, synthèse, consultation, offres, attribution, archive) :
   plus de ruban d'angle avec le code projet ; seul reste le bouton d'information du mandat, à la couleur de son type */
body.eu-panelix #PO > .ribbon-two { display: none !important; }
body.eu-panelix #PO > .mandatBtn {
	top: 12px; left: 12px; z-index: 5;
	display: flex; align-items: center; justify-content: center;
	width: 36px; height: 36px; padding: 0 !important;
	border-radius: var(--eu-radius-sm) !important;
	box-shadow: var(--eu-shadow-md);
	cursor: pointer;
}
body.eu-panelix #PO > .mandatBtn.d-none { display: none !important; }
body.eu-panelix #PO > .mandatBtn i { font-size: 20px !important; line-height: 1; }

/* Onglets collés à la carte de dessous : pas d'arrondi en haut à gauche de la carte, pas de jour entre les deux */
body.eu-panelix .nav-tabs.nav-bordered { margin-bottom: -1px !important; position: relative; z-index: 1; }
/* Carte sous les onglets : ni filet ni arrondis en haut, les onglets font office de bord supérieur */
body.eu-panelix .nav-tabs.nav-bordered + .row > [class*="col"] > .card:first-child { border-top: 0; border-top-left-radius: 0; border-top-right-radius: 0; }
body.eu-panelix .nav-tabs.nav-bordered .nav-link { border-radius: var(--eu-radius-sm) var(--eu-radius-sm) 0 0; }

/* Étape 5 : pictogramme d'état (projet complet / incomplet) en pastille, sans les ombres colorées de .text-ok */
body.eu-panelix #Projet .text-ok { margin: 4px 0 0 !important; font-size: 34px; line-height: 1; text-shadow: none; }
body.eu-panelix #pictoDCE {
	display: inline-flex; align-items: center; justify-content: center;
	width: 68px; height: 68px; border-radius: 18px;
	font-size: 34px; text-shadow: none;
}
body.eu-panelix #pictoDCE.text-warning { background: #fef3c7; color: #d97706 !important; }
body.eu-panelix #pictoDCE.text-success { background: #d1fae5; color: #059669 !important; }

/* =====================================================================
   OPTION "Barre du haut bleu nuit" (panneau Réglages) : fond anthracite du bandeau du site vitrine
   Classe html.eu-topbar-night posée par head.ihtml / theme-panelix.js
   ===================================================================== */
html.eu-topbar-night body.eu-panelix .navbar-custom { background: #152f4e !important; border-bottom-color: #152f4e; }
html.eu-topbar-night body.eu-panelix .navbar-custom .page-title { color: #fff !important; }
html.eu-topbar-night body.eu-panelix .navbar-custom .page-title > i { color: #7fd0f2; }
html.eu-topbar-night body.eu-panelix .navbar-custom .page-title span { color: rgba(255, 255, 255, .7); }
html.eu-topbar-night body.eu-panelix .navbar-custom .eu-menu-toggle { background: rgba(255, 255, 255, .08); color: #fff; }
html.eu-topbar-night body.eu-panelix .navbar-custom .eu-menu-toggle:hover { background: rgba(255, 255, 255, .16); color: #fff; }
html.eu-topbar-night body.eu-panelix .navbar-custom .noti-icon,
html.eu-topbar-night body.eu-panelix .navbar-custom .notification-list .nav-link { color: rgba(255, 255, 255, .85); }
html.eu-topbar-night body.eu-panelix .navbar-custom .notification-list .nav-link:hover,
html.eu-topbar-night body.eu-panelix .navbar-custom .nav-link.nav-user:hover { background: rgba(255, 255, 255, .08); }
html.eu-topbar-night body.eu-panelix .navbar-custom .eu-profile-name { color: #fff; }
html.eu-topbar-night body.eu-panelix .navbar-custom .eu-profile-role,
html.eu-topbar-night body.eu-panelix .navbar-custom .eu-profile-caret { color: rgba(255, 255, 255, .6); }
html.eu-topbar-night body.eu-panelix .navbar-custom .badge-dark { background: rgba(255, 255, 255, .15); }
html.eu-topbar-night body.eu-panelix .navbar-custom > ul:not(.topbar-right-menu) { color: rgba(255, 255, 255, .85); }
/* Logo de la société (MO) : sur pastille blanche pour rester lisible sur fond sombre */
html.eu-topbar-night body.eu-panelix .navbar-custom .nav-user-logo .nav-user { padding: 4px 10px; height: auto; border-radius: var(--eu-radius-sm); background: #fff; }
html.eu-topbar-night body.eu-panelix .navbar-custom #entrepriseSwitch { border-color: rgba(255, 255, 255, .2); background: rgba(255, 255, 255, .08); color: #fff; }
html.eu-topbar-night body.eu-panelix .navbar-custom #entrepriseSwitch option { color: #1d3150; }

/* Bloc du logo (haut du menu latéral, aligné sur la barre du haut) : même fond bleu nuit, logo blanc du site vitrine */
body.eu-panelix .left-side-menu .logo .eu-logo-night { display: none; }
html.eu-topbar-night body.eu-panelix .left-side-menu .logo,
html.eu-topbar-night body.eu-panelix[data-leftbar-theme] .left-side-menu .logo,
html.eu-topbar-night body.eu-panelix[data-leftbar-compact-mode="condensed"] .wrapper .left-side-menu .logo {
	background: #152f4e !important;
	border-bottom-color: #152f4e;
	border-right-color: #152f4e;
}
html.eu-topbar-night body.eu-panelix .left-side-menu .logo .eu-logo-day { display: none; }
html.eu-topbar-night body.eu-panelix .left-side-menu .logo .eu-logo-night { display: inline-block; }
html.eu-topbar-night body.eu-panelix.eu-dark .left-side-menu .logo span.logo-lg img { filter: none; }

/* Tête du menu latéral (MO, MOE, Entreprise) : picto du profil à la place du titre "Espace …" */
body.eu-panelix .side-nav .side-nav-title.eu-space-picto { padding: 14px 16px 6px !important; text-align: center; }
body.eu-panelix .side-nav .eu-space-picto img { display: inline-block; width: auto; height: 72px; max-width: 100%; }
body.eu-panelix[data-leftbar-compact-mode="condensed"] .side-nav .eu-space-picto { display: none !important; }

/* =====================================================================
   Espace MOE : l'ancien jaune-orangé du profil MOE (couleur Bootstrap "warning" de LS_PROFILS, #FFBC00 en dur)
   remplacé par le corail de l'espace. La couleur n°7 de la palette est fixée au corail dans eu-moe/index.php.
   ===================================================================== */
body.eu-panelix.eu-moe .bg-warning { background-color: var(--eu-accent) !important; }
body.eu-panelix.eu-moe .bg-warning-lighten { background-color: var(--eu-accent-light) !important; }
body.eu-panelix.eu-moe .text-warning { color: var(--eu-accent) !important; }
body.eu-panelix.eu-moe .border-warning { border-color: var(--eu-accent) !important; }
body.eu-panelix.eu-moe .badge-warning { background-color: var(--eu-accent); color: #fff; }
body.eu-panelix.eu-moe .badge-warning-lighten { background-color: var(--eu-accent-light); color: var(--eu-accent-dark); }
body.eu-panelix.eu-moe .btn-warning,
body.eu-panelix.eu-moe .btn-warning:not(:disabled):not(.disabled):active { background-color: var(--eu-accent); border-color: var(--eu-accent); color: #fff; box-shadow: 0 2px 6px 0 rgba(var(--eu-accent-rgb), .35); }
body.eu-panelix.eu-moe .btn-warning:hover, body.eu-panelix.eu-moe .btn-warning:focus { background-color: var(--eu-accent-dark); border-color: var(--eu-accent-dark); color: #fff; }
body.eu-panelix.eu-moe .btn-outline-warning { color: var(--eu-accent); border-color: var(--eu-accent); }
body.eu-panelix.eu-moe .btn-outline-warning:hover { background-color: var(--eu-accent); color: #fff; }
body.eu-panelix.eu-moe .table-warning, body.eu-panelix.eu-moe .table-warning > td, body.eu-panelix.eu-moe .table-warning > th { background-color: var(--eu-accent-light); }
/* Jaune codé en dur dans styles-admin.css */
body.eu-panelix.eu-moe #progressbar li.active.moe::before,
body.eu-panelix.eu-moe #progressbar li.active.moe:after { background: var(--eu-accent); color: #fff; }
body.eu-panelix.eu-moe .switch-xl input[data-switch] + label,
body.eu-panelix.eu-moe .switch-lg input[data-switch] + label,
body.eu-panelix.eu-moe .switch-100 input[data-switch]:checked + label { background-color: var(--eu-accent); }
body.eu-panelix.eu-moe .pulse-partner { box-shadow: 0 0 0 0 rgba(var(--eu-accent-rgb), .7); animation-name: eu_pulse_accent; }

/* Boutons-cartes de raccourci (lien > carte colorée > toll-free-box : Forum, Dashboard, DCE, Synthèse…, tous espaces) :
   forme compacte Panelix, chaque bouton garde sa couleur de fond */
body.eu-panelix a:not(#PO a) > .card:has(> .card-body > .toll-free-box) {
	border: 0;
	border-radius: var(--eu-radius-sm);
	box-shadow: 0 4px 12px rgba(0, 0, 0, .10);
	background-image: none !important;
	transition: transform .2s, box-shadow .2s;
}
body.eu-panelix a:not(#PO a) > .card:has(> .card-body > .toll-free-box):hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(0, 0, 0, .14); }
body.eu-panelix a:not(#PO a) > .card > .card-body:has(> .toll-free-box) { padding: 8px 12px !important; }
body.eu-panelix a:not(#PO a) > .card > .card-body > .toll-free-box { padding: 4px 0; }
body.eu-panelix a:not(#PO a) > .card > .card-body > .toll-free-box h4 { margin: 0; color: inherit; font-size: 14px; font-weight: 600; line-height: 1.4; text-transform: none; letter-spacing: 0; }
body.eu-panelix a:not(#PO a) > .card > .card-body > .toll-free-box i { position: static; display: inline-block; margin-right: 6px; font-size: 18px; opacity: 1; transform: none; vertical-align: -2px; color: inherit; }
body.eu-panelix a:not(#PO a) > .card.bg-danger:has(> .card-body > .toll-free-box) { background-color: #fa5c7c !important; }

/* Écrans de connexion : lignes en perspective (--highlight = ciel, --primary = sol) et epsilon 3D (--eps-main, --eps-pale)
   dans la couleur du profil et sa teinte pastel. Admin : couleurs du site vitrine (valeurs par défaut). */
body.eu-panelix.eu-mo .eu-logon-backdrop,
body.eu-panelix.eu-mo .eu-logon-epsilon { --highlight: #d98aa0; --primary: #9b2243; --eps-main: #9b2243; --eps-pale: #e3b3c1; }
body.eu-panelix.eu-moe .eu-logon-backdrop,
body.eu-panelix.eu-moe .eu-logon-epsilon { --highlight: #f6b77c; --primary: #ec7a16; --eps-main: #ec7a16; --eps-pale: #f8cfa6; }
body.eu-panelix.eu-entreprise .eu-logon-backdrop,
body.eu-panelix.eu-entreprise .eu-logon-epsilon { --highlight: #8ad8dc; --primary: #3aa7ae; --eps-main: #3aa7ae; --eps-pale: #a6e1e4; }

/* Titre de la carte de connexion : "Authentification" + nom du profil dans la couleur de l'espace */
body.eu-panelix[class*="_log"] .account-pages .card-header h4 { color: var(--eu-text-dark) !important; }
body.eu-panelix[class*="_log"] .account-pages .card-header h4 .eu-logon-profile { margin-left: 4px; color: var(--eu-accent) !important; font-weight: 500; }

/* Horizon des écrans de connexion remonté de 50px : le fond déborde de 100px vers le haut (l'horizon est à mi-hauteur
   du fond, il remonte donc de la moitié) tout en continuant de couvrir le bas de l'écran */
.eu-logon-backdrop { top: -100px; }

/* Écrans de connexion : picto du profil à droite du logo, à sa taille réelle (100 % du PNG) */
body.eu-panelix .eu-logon-brand { display: flex; align-items: center; justify-content: center; gap: 24px; position: relative; z-index: 2; }
body.eu-panelix .eu-logon-brand .eu-logon-logo { margin-top: 0; }
body.eu-panelix .eu-logon-brand .eu-logon-picto { width: auto; height: auto; max-width: none; }
