/* REGIDESO brand palette overrides */
:root {
	--bs-primary: #111184;
	--bs-primary-rgb: 17, 17, 132;
	--bs-link-color: #111184;
	--bs-link-hover-color: #0d0d6f;
	--bs-primary-text-emphasis: #0a0a4a;
	--bs-primary-bg-subtle: #e9e9f6;
	--bs-primary-border-subtle: #c8c8e3;
}

/* Remix Icon : le thème peut forcer une autre font sur <i> — les glyphes disparaissent */
i[class^="ri-"],
i[class*=" ri-"] {
	font-family: "remixicon" !important;
	font-style: normal !important;
	font-weight: normal !important;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
/* Le glyphe est dans ::before ; forcer la police sur le pseudo-évite les thèmes qui cassent l’héritage */
[class^="ri-"]::before,
[class*=" ri-"]::before {
	font-family: "remixicon" !important;
	font-style: normal !important;
	font-weight: normal !important;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

/* Fallbacks for components not using CSS variables in compiled CSS */
.text-primary { color: #111184 !important; }
.bg-primary { background-color: #111184 !important; }
.border-primary { border-color: #111184 !important; }
.badge.bg-primary { background-color: #111184 !important; }
.link-primary { color: #111184 !important; }
.link-primary:hover, .link-primary:focus { color: #0d0d6f !important; }

.btn-primary {
	background-color: #111184 !important;
	border-color: #111184 !important;
}
.btn-primary:hover, .btn-primary:focus {
	background-color: #0d0d6f !important;
	border-color: #0d0d6f !important;
}
.btn-outline-primary {
	color: #111184 !important;
	border-color: #111184 !important;
}
.btn-outline-primary:hover, .btn-outline-primary:focus {
	background-color: #111184 !important;
	border-color: #111184 !important;
	color: #fff !important;
}

/* Subtle background helpers (Bootstrap 5.3) */
.bg-primary-subtle { background-color: var(--bs-primary-bg-subtle) !important; }
.text-primary-emphasis { color: var(--bs-primary-text-emphasis) !important; }

/* Largeurs sidebar : sur .page-wrapper pour que .main-container hérite de var() (sinon padding-left invalide → contenu sous la barre) */
.page-wrapper {
	--sidebar-w-expanded: 220px;
	--sidebar-w-rail: 64px;
}

/* component1 — barre latérale (fond sombre, marque REGIDESO) */
.sidebar-wrapper {
	background: #263544 !important;
	box-shadow: 4px 0 28px rgba(18, 24, 32, 0.4) !important;
}
.sidebar-wrapper .app-brand {
	position: relative !important;
	display: flex !important;
	align-items: center;
	justify-content: center;
	padding: 0.45rem 2.35rem 0.45rem 0.45rem !important;
	border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}
.sidebar-wrapper .app-brand__link {
	display: flex !important;
	align-items: center;
	justify-content: center;
	width: 100%;
	flex: 1 1 auto;
	min-width: 0;
	text-decoration: none;
}
.sidebar-wrapper .app-brand .logo {
	max-width: min(100%, 190px);
	max-height: 58px;
	width: auto;
	height: auto;
	margin: 0.35rem 0.25rem !important;
	object-fit: contain;
}
/* Bouton replier : coin droit, logo centré */
.sidebar-collapse-btn {
	position: absolute !important;
	right: 0.5rem;
	top: 50%;
	transform: translateY(-50%);
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 2rem;
	height: 2rem;
	margin: 0;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 8px;
	background: rgba(255, 255, 255, 0.1) !important;
	color: #fff !important;
	cursor: pointer;
	transition: background 0.15s ease, transform 0.15s ease;
	z-index: 2;
}
.sidebar-collapse-btn i {
	font-size: 1.05rem;
	line-height: 1;
	color: #fff !important;
}
.sidebar-collapse-btn:hover {
	background: rgba(255, 255, 255, 0.2) !important;
	color: #fff !important;
}
.sidebar-collapse-btn:focus-visible {
	outline: 2px solid rgba(255, 255, 255, 0.6);
	outline-offset: 2px;
}
.sidebar-collapse-btn:active {
	transform: translateY(-50%) scale(0.96);
}

/* Menu : libellés et icônes plus compacts */
.sidebar-wrapper .sidebar-menu > li > a {
	font-size: 0.78rem !important;
	font-weight: 500;
	line-height: 1.3;
	padding-top: 0.38rem !important;
	padding-bottom: 0.38rem !important;
	color: rgba(255, 255, 255, 0.9) !important;
}
.sidebar-wrapper .sidebar-menu > li > a > i {
	font-size: 0.88rem !important;
	width: 30px !important;
	height: 30px !important;
	min-width: 30px !important;
	margin-right: 7px !important;
	background: rgba(255, 255, 255, 0.14) !important;
	color: #fff !important;
}
.sidebar-wrapper .sidebar-menu .menu-text {
	font-size: 0.78rem !important;
}
.sidebar-wrapper .sidebar-menu .treeview-menu > li > a {
	font-size: 0.72rem !important;
	line-height: 1.3;
	padding-top: 0.35rem !important;
	padding-bottom: 0.35rem !important;
}
.sidebar-wrapper .sidebar-menu .badge {
	font-size: 0.65rem !important;
	font-weight: 600;
	padding: 0.2em 0.45em !important;
}
.sidebar-menu > li > a:hover {
	background: rgba(255, 255, 255, 0.1) !important;
	color: #fff !important;
}
.sidebar-menu > li > a:hover > i {
	background: rgba(255, 255, 255, 0.22) !important;
	color: #fff !important;
}
#sidebar .sidebar-menu li > a i {
	color: #fff !important;
}
#sidebar .sidebar-menu li > a:hover i {
	color: #fff !important;
}
#sidebar .sidebar-menu li > a.active,
#sidebar .sidebar-menu li.current-page > a,
#sidebar .sidebar-menu li > a.active:focus {
	background: rgba(255, 255, 255, 0.16) !important;
	color: #fff !important;
	box-shadow: inset 3px 0 0 rgba(255, 255, 255, 0.85);
}
#sidebar .sidebar-menu li > a.active i,
#sidebar .sidebar-menu li.current-page > a i {
	background: #fff !important;
	color: var(--bs-primary) !important;
}
.sidebar-menu > li.treeview > a:after {
	color: rgba(255, 255, 255, 0.7) !important;
}
.sidebar-menu .treeview-menu {
	background: rgba(0, 0, 0, 0.18) !important;
}
.sidebar-menu .treeview-menu > li > a {
	color: rgba(255, 255, 255, 0.85) !important;
	border-left-color: rgba(255, 255, 255, 0.15) !important;
}
.sidebar-menu .treeview-menu > li > a:hover {
	color: #fff !important;
	background: rgba(255, 255, 255, 0.08) !important;
}
.sidebar-menu .treeview-menu > li > a.active-sub {
	color: #fff !important;
	background: rgba(255, 255, 255, 0.14) !important;
}
.sidebar-menu .treeview-menu > li > a:before {
	background: rgba(255, 255, 255, 0.85) !important;
}
/* Legacy sidebar (.dlabnav / .metismenu) icon colors */
.dlabnav .metismenu > li > a i {
	color: var(--bs-primary) !important;
}
.dlabnav .metismenu > li.mm-active > a i,
.dlabnav .metismenu > li > a:hover i {
	color: var(--bs-link-hover-color) !important;
}

/* Fullscreen icon (header) */
.dz-fullscreen,
.header-right .notification_dropdown .dz-fullscreen {
	color: var(--bs-primary) !important;
}
.dz-fullscreen svg path,
.dz-fullscreen svg rect,
.dz-fullscreen svg circle,
.header-right .notification_dropdown .dz-fullscreen svg path {
	fill: var(--bs-primary) !important;
	stroke: var(--bs-primary) !important;
}

/* Toggle menu dans le header : simple, lisible sur fond clair */
.header-sidebar-toggle.toggle-sidebar {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: 2.375rem;
	height: 2.375rem;
	padding: 0 !important;
	margin: 0;
	border: 1px solid rgba(17, 17, 132, 0.18) !important;
	border-radius: 8px;
	background: #fff !important;
	box-shadow: 0 1px 2px rgba(18, 24, 32, 0.06);
	cursor: pointer;
	transition: background 0.15s ease, border-color 0.15s ease;
}
.header-sidebar-toggle.toggle-sidebar i {
	color: var(--bs-primary) !important;
	font-size: 1.25rem;
}
.header-sidebar-toggle.toggle-sidebar:hover {
	background: #f4f5f9 !important;
	border-color: rgba(17, 17, 132, 0.3) !important;
}
.header-sidebar-toggle.toggle-sidebar:focus-visible {
	outline: 2px solid rgba(17, 17, 132, 0.35);
	outline-offset: 2px;
}

/* Empêche le contenu (z-index 12) de recouvrir la sidebar du thème (souvent z-index 11) */
.page-wrapper .sidebar-wrapper {
	z-index: 1030 !important;
}

/* component1 sidebar: largeur par défaut + mode replié (toggle desktop) */
@media screen and (min-width: 992px) {
	.sidebar-wrapper {
		width: var(--sidebar-w-expanded) !important;
	}
	.sidebar-wrapper:hover {
		width: var(--sidebar-w-expanded) !important;
	}
	.main-container {
		padding-left: var(--sidebar-w-expanded) !important;
	}
	.sidebar-menu > li > a .menu-text {
		display: block !important;
	}

	.page-wrapper.sidebar-narrow .sidebar-wrapper {
		width: var(--sidebar-w-rail) !important;
	}
	.page-wrapper.sidebar-narrow .sidebar-wrapper:hover {
		width: var(--sidebar-w-expanded) !important;
	}
	.page-wrapper.sidebar-narrow .main-container {
		padding-left: var(--sidebar-w-rail) !important;
	}
	.page-wrapper.sidebar-narrow .sidebar-menu > li > a .menu-text {
		display: none !important;
	}
	.page-wrapper.sidebar-narrow .sidebar-wrapper:hover .sidebar-menu > li > a .menu-text {
		display: block !important;
	}
	.page-wrapper.sidebar-narrow .sidebar-menu > li.treeview > a:after {
		display: none !important;
	}
	.page-wrapper.sidebar-narrow .sidebar-wrapper:hover .sidebar-menu > li.treeview > a:after {
		display: inline-block !important;
	}

	/* Rail étroit : pas de bouton replier (disparaît) ; réapparaît au survol ou via le menu du header */
	.page-wrapper.sidebar-narrow .sidebar-wrapper:not(:hover) .sidebar-collapse-btn {
		display: none !important;
	}
	.page-wrapper.sidebar-narrow .sidebar-wrapper:hover .sidebar-collapse-btn {
		display: inline-flex !important;
	}
	.page-wrapper.sidebar-narrow .sidebar-wrapper:not(:hover) .app-brand {
		justify-content: center;
		padding: 0.4rem 0.3rem !important;
	}
	.page-wrapper.sidebar-narrow .sidebar-wrapper:not(:hover) .app-brand .logo {
		max-width: 40px;
		max-height: 36px;
	}
	.page-wrapper.sidebar-narrow .sidebar-wrapper:hover .app-brand {
		padding: 0.45rem 2.35rem 0.45rem 0.45rem !important;
	}
	.page-wrapper.sidebar-narrow .sidebar-wrapper:hover .app-brand .logo {
		max-width: min(100%, 190px);
		max-height: 58px;
	}
}

/* Drawer mobile : même largeur réduite que le bureau */
@media screen and (max-width: 991.98px) {
	.page-wrapper .sidebar-wrapper {
		width: var(--sidebar-w-expanded) !important;
	}
}

/* Contenu : reste sous la sidebar (1030) ; min-width 0 évite le débordement flex/table large */
.page-wrapper .main-container {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}
/* Pas de z-index ici : avec z-index:1, tout le bloc (y compris les .modal du contenu)
   restait sous le .modal-backdrop du body → fond noir et boîte de dialogue invisible. */
.app-container {
	position: relative;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	box-sizing: border-box;
}
.avatar-box { background: var(--bs-primary) !important; }
.app-hero-header .date-control .input-group-text i { color: var(--bs-primary) !important; }
.breadcrumb .breadcrumb-item i { color: var(--bs-primary) !important; }
.nav .nav-link:hover { color: var(--bs-link-hover-color) !important; background-color: rgba(var(--bs-primary-rgb), .10) !important; }
.nav .nav-link.active { background-color: var(--bs-primary) !important; color: #fff !important; }
.custom-tabs-container .nav-tabs .nav-link.active { border-color: var(--bs-primary) var(--bs-primary) transparent !important; color: var(--bs-primary) !important; }
.sidebar-menu > li.current-page > a i {
	background: #fff !important;
	color: var(--bs-primary) !important;
}

/* Audience table theming + generic table-brand */
.table-audience thead tr,
.table-brand thead tr {
	background-color: var(--bs-primary) !important;
}
.table-audience thead th,
.table-brand thead th {
	color: #fff !important;
	border-color: var(--bs-primary) !important;
	vertical-align: middle;
}
.table-audience thead td,
.table-audience thead th,
.table-brand thead td,
.table-brand thead th {
	background-color: var(--bs-primary) !important;
	color: #fff !important;
}
.table-audience > :where(thead,tfoot) > tr > :where(th,td),
.table-brand > :where(thead,tfoot) > tr > :where(th,td) {
	background-color: var(--bs-primary) !important;
	color: #fff !important;
	border-color: var(--bs-primary) !important;
}
.table-audience.table-striped > tbody > tr:nth-of-type(odd),
.table-brand.table-striped > tbody > tr:nth-of-type(odd) {
	background-color: rgba(var(--bs-primary-rgb), .03) !important;
}
.table-audience tbody tr:hover,
.table-brand tbody tr:hover {
	background-color: rgba(var(--bs-primary-rgb), .08) !important;
}

/* FullCalendar — base (page calendrier surchargée plus bas) */
.fc .fc-toolbar { gap: .5rem; }
.fc .fc-toolbar-title { font-size: 1.25rem; font-weight: 700; color: #111827; }
.fc .fc-button {
	border: 1px solid var(--bs-primary-border-subtle);
	background: #fff;
	color: var(--bs-primary);
	font-weight: 600;
	padding: .35rem .6rem;
	border-radius: .35rem;
}
.fc .fc-button:hover, .fc .fc-button:focus {
	background: rgba(var(--bs-primary-rgb), .08);
	color: var(--bs-primary);
	border-color: rgba(var(--bs-primary-rgb), .35);
}
.fc .fc-button.fc-button-primary, .fc .fc-today-button {
	background: var(--bs-primary);
	color: #fff;
	border-color: var(--bs-primary);
}
.fc .fc-button.fc-button-primary:hover, .fc .fc-today-button:hover {
	background: var(--bs-link-hover-color);
	border-color: var(--bs-link-hover-color);
	color: #fff;
}
.fc .fc-col-header-cell-cushion { color: #6b7280; font-weight: 600; }
.fc .fc-day-today { background: rgba(var(--bs-primary-rgb), .06) !important; }
.fc .fc-daygrid-day-number { color: #374151; font-weight: 600; }
.fc .fc-daygrid-event, .fc .fc-timegrid-event {
	border-radius: .35rem;
	border: 0;
	padding: 0 .25rem;
	box-shadow: 0 1px 2px rgba(0,0,0,.06);
}
.fc .fc-daygrid-event .fc-event-time, .fc .fc-timegrid-event .fc-event-time { font-weight: 700; }
.fc .fc-daygrid-event .fc-event-title, .fc .fc-timegrid-event .fc-event-title { font-weight: 600; }
.fc .bg-primary { background-color: var(--bs-primary) !important; color: #fff !important; }
.fc .bg-warning { background-color: #F59E0B !important; color: #111827 !important; }
.fc .bg-danger { background-color: #EF4444 !important; color: #fff !important; }
.fc .bg-success { background-color: #10B981 !important; color: #0b3025 !important; }
.fc .bg-info { background-color: #0EA5E9 !important; color: #052c3a !important; }
.fc .bg-dark { background-color: #323130 !important; color: #fff !important; }

/* Global page preloader */
.app-preloader {
	position: fixed;
	inset: 0;
	background: rgba(255,255,255,.9);
	backdrop-filter: blur(2px);
	display: none;
	align-items: center;
	justify-content: center;
	z-index: 2147483000; /* above modals */
}
.app-preloader.show { display: flex; }
.app-preloader .loader {
	width: 52px;
	height: 52px;
	border-radius: 50%;
	border: 4px solid var(--bs-primary-border-subtle);
	border-top-color: var(--bs-primary);
	animation: app-spin .8s linear infinite;
}
@keyframes app-spin {
	to { transform: rotate(360deg); }
}

/* Page calendrier — style Outlook / Microsoft 365 */
.calendar-page {
	--owa-blue: #0078d4;
	--owa-blue-hover: #106ebe;
	--owa-blue-tint: #deecf9;
	--owa-canvas: #f3f2f1;
	--owa-surface: #ffffff;
	--owa-border: #e1dfdd;
	--owa-border-strong: #c8c6c4;
	--owa-text: #323130;
	--owa-text-sec: #605e5c;
	--owa-today: #fff4ce;
	--owa-weekend: #faf9f8;
	font-family: "Segoe UI", "Segoe UI Web (West European)", system-ui, -apple-system, sans-serif;
	color: var(--owa-text);
	background: var(--owa-canvas);
	padding-bottom: 1.5rem;
	margin: 0;
}
.calendar-page .calendar-page-header {
	border-radius: 4px;
	background: var(--owa-surface);
	border: 1px solid var(--owa-border);
	box-shadow: 0 0.3px 0.9px rgba(0, 0, 0, 0.06), 0 1.6px 3.6px rgba(0, 0, 0, 0.08);
}
.calendar-page .calendar-page-header .calendar-page-title {
	font-size: 1.25rem;
	font-weight: 600;
	color: var(--owa-text);
	letter-spacing: -0.02em;
}
.calendar-page .calendar-filters .form-label {
	font-size: 0.625rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--owa-text-sec);
	margin-bottom: 0.15rem;
}
.calendar-page .calendar-filters .form-select {
	min-width: 6.5rem;
	border-radius: 4px;
	border: 1px solid var(--owa-border-strong);
	font-size: 0.8125rem;
	min-height: 2.25rem;
	color: var(--owa-text);
	background-color: var(--owa-surface);
}
.calendar-page .calendar-filters .form-select:focus {
	border-color: var(--owa-blue);
	box-shadow: 0 0 0 1px var(--owa-blue);
}
.calendar-page .calendar-filters .btn {
	border-radius: 4px;
	font-weight: 600;
	font-size: 0.8125rem;
	min-height: 2.25rem;
}
.calendar-page .calendar-filters .btn-primary {
	background: var(--owa-blue);
	border-color: var(--owa-blue);
}
.calendar-page .calendar-filters .btn-primary:hover {
	background: var(--owa-blue-hover);
	border-color: var(--owa-blue-hover);
}
.calendar-page .calendar-filters .btn-outline-primary {
	color: var(--owa-blue);
	border-color: var(--owa-border-strong);
}
.calendar-page .calendar-filters .btn-outline-primary:hover {
	background: var(--owa-blue-tint);
	border-color: var(--owa-blue);
	color: var(--owa-blue-hover);
}
.calendar-page-card {
	border-radius: 4px;
	background: var(--owa-surface);
	border: 1px solid var(--owa-border);
	box-shadow: 0 0.3px 0.9px rgba(0, 0, 0, 0.06);
}
.calendar-page-card .card-body {
	background: var(--owa-surface);
	border-radius: 0 0 4px 4px;
	padding: 1rem 1rem 1.25rem !important;
}
.calendar-page-card .fc {
	--fc-border-color: var(--owa-border);
	--fc-page-bg-color: var(--owa-surface);
	--fc-neutral-bg-color: var(--owa-weekend);
	--fc-today-bg-color: var(--owa-today);
	font-family: inherit;
}
.calendar-page-card .fc .fc-scrollgrid {
	border-radius: 2px;
	overflow: hidden;
	border: 1px solid var(--owa-border) !important;
	background: var(--owa-surface);
}
.calendar-page-card .fc .fc-scrollgrid-section > td {
	border-color: var(--owa-border);
}
.calendar-page-card .fc .fc-col-header-cell {
	background: var(--owa-surface) !important;
	border-color: var(--owa-border) !important;
}
.calendar-page-card .fc .fc-col-header-cell-cushion {
	color: var(--owa-text-sec);
	font-weight: 600;
	font-size: 0.6875rem;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	padding: 0.5rem 0.25rem;
}
.calendar-page-card .fc .fc-daygrid-day,
.calendar-page-card .fc .fc-timegrid-col {
	background: var(--owa-surface);
}
.calendar-page-card .fc .fc-day-sat,
.calendar-page-card .fc .fc-day-sun {
	background: var(--owa-weekend) !important;
}
.calendar-page-card .fc th.fc-day-sat,
.calendar-page-card .fc th.fc-day-sun {
	background: var(--owa-weekend) !important;
}
.calendar-page-card .fc .fc-day-today {
	background: var(--owa-today) !important;
}
.calendar-page-card .fc .fc-daygrid-day-number {
	color: var(--owa-text);
	font-weight: 600;
	font-size: 0.8125rem;
	padding: 4px 6px;
}
.calendar-page-card .fc .fc-toolbar.fc-header-toolbar {
	margin-bottom: 1rem;
	gap: 0.75rem;
	flex-wrap: wrap;
}
.calendar-page-card .fc .fc-toolbar-title {
	font-size: 1.375rem !important;
	font-weight: 600 !important;
	color: var(--owa-text) !important;
	letter-spacing: -0.02em;
}
.calendar-page-card .fc .fc-button {
	border-radius: 2px;
	font-weight: 600;
	font-size: 0.8125rem;
	padding: 0.35rem 0.7rem;
	border: 1px solid var(--owa-border-strong);
	background: var(--owa-surface);
	color: var(--owa-text);
	box-shadow: none;
}
.calendar-page-card .fc .fc-button:hover {
	background: #edebe9;
	border-color: var(--owa-border-strong);
	color: var(--owa-text);
}
.calendar-page-card .fc .fc-button:focus {
	box-shadow: 0 0 0 1px var(--owa-blue) inset;
}
.calendar-page-card .fc .fc-button-primary:not(:disabled),
.calendar-page-card .fc .fc-today-button:not(:disabled) {
	background: var(--owa-blue) !important;
	border-color: var(--owa-blue) !important;
	color: #fff !important;
}
.calendar-page-card .fc .fc-button-primary:not(:disabled):hover,
.calendar-page-card .fc .fc-today-button:not(:disabled):hover {
	background: var(--owa-blue-hover) !important;
	border-color: var(--owa-blue-hover) !important;
	color: #fff !important;
}
.calendar-page-card .fc .fc-button-active {
	background: var(--owa-blue-tint) !important;
	color: var(--owa-blue) !important;
	border-color: var(--owa-blue) !important;
}
.calendar-page-card .fc .fc-timegrid-slot-label-cushion,
.calendar-page-card .fc .fc-timegrid-axis-cushion {
	color: var(--owa-text-sec);
	font-size: 0.75rem;
}
.calendar-page-card .fc .fc-now-indicator-line {
	border-color: var(--owa-blue);
	border-width: 2px;
}
.calendar-page-card .fc .fc-now-indicator-arrow {
	border-top-color: var(--owa-blue);
}
.calendar-page-card .fc .fc-daygrid-event,
.calendar-page-card .fc .fc-timegrid-event {
	border: none;
	border-left: 3px solid var(--owa-blue);
	border-radius: 0 2px 2px 0;
	font-size: 0.8125rem;
	box-shadow: 0 0.5px 2px rgba(0, 0, 0, 0.08);
	padding: 1px 4px;
}
.calendar-page-card .fc .fc-event.bg-primary {
	background: var(--owa-blue) !important;
	color: #fff !important;
	border-left-color: #004578 !important;
}
.calendar-page-card .fc .fc-event.bg-dark {
	background: #323130 !important;
	color: #fff !important;
	border-left-color: #000 !important;
}
.calendar-page-card .fc .fc-daygrid-block-event .fc-event-time,
.calendar-page-card .fc .fc-daygrid-block-event .fc-event-title {
	font-weight: 600;
}
@media (max-width: 767.98px) {
	.calendar-page-card .fc .fc-toolbar.fc-header-toolbar {
		flex-direction: column;
		align-items: stretch;
	}
	.calendar-page-card .fc .fc-toolbar-chunk {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		gap: 0.35rem;
	}
}

/* ——— Squelettes (chargement) ——— */
@keyframes regi-skeleton-shimmer {
	0% { background-position: 200% 0; }
	100% { background-position: -200% 0; }
}
.skeleton,
.skeleton-line,
.skeleton-stat-icon,
.skeleton-chart,
.skeleton-avatar {
	--skeleton-base: #e8eaef;
	--skeleton-highlight: #f4f5f8;
	background: linear-gradient(
		90deg,
		var(--skeleton-base) 0%,
		var(--skeleton-highlight) 50%,
		var(--skeleton-base) 100%
	);
	background-size: 200% 100%;
	animation: regi-skeleton-shimmer 1.35s ease-in-out infinite;
	border: 0;
	color: transparent !important;
	pointer-events: none;
	user-select: none;
}
.skeleton-card {
	box-shadow: none !important;
}
.skeleton-card:hover {
	transform: none !important;
	box-shadow: none !important;
}
.skeleton-line {
	display: block;
	min-height: 0.85rem;
}
.skeleton-line--sm { min-height: 0.7rem; }
.skeleton-line--lg { min-height: 1.15rem; }
.skeleton-line--xl { min-height: 1.5rem; }
.skeleton-stat-icon {
	width: 3rem;
	height: 3rem;
	flex-shrink: 0;
}
.skeleton-chart {
	min-height: 220px;
	border-radius: 10px;
	width: 100%;
}
.skeleton-avatar {
	width: 2.25rem;
	height: 2.25rem;
	border-radius: 50%;
}
.skeleton-tbody td {
	vertical-align: middle;
	padding-top: 0.85rem;
	padding-bottom: 0.85rem;
}
.skeleton-host[hidden],
.skeleton-host.is-hidden {
	display: none !important;
}