/*** Polices ***/

@font-face {
    font-family: "Poppins";
    src: url("fonts/Poppins-Thin.ttf") format("truetype");
    font-weight: 100;
    font-style: normal;
}

@font-face {
    font-family: "Poppins";
    src: url("fonts/Poppins-ThinItalic.ttf") format("truetype");
    font-weight: 100;
    font-style: italic;
}

@font-face {
    font-family: "Poppins";
    src: url("fonts/Poppins-ExtraLight.ttf") format("truetype");
    font-weight: 200;
    font-style: normal;
}

@font-face {
    font-family: "Poppins";
    src: url("fonts/Poppins-ExtraLightItalic.ttf") format("truetype");
    font-weight: 200;
    font-style: italic;
}

@font-face {
    font-family: "Poppins";
    src: url("fonts/Poppins-Light.ttf") format("truetype");
    font-weight: 300;
    font-style: normal;
}

@font-face {
    font-family: "Poppins";
    src: url("fonts/Poppins-LightItalic.ttf") format("truetype");
    font-weight: 300;
    font-style: italic;
}

@font-face {
    font-family: "Poppins";
    src: url("fonts/Poppins-Regular.ttf") format("truetype");
    font-weight: 400;
    font-style: normal;
}

@font-face {
    font-family: "Poppins";
    src: url("fonts/Poppins-Italic.ttf") format("truetype");
    font-weight: 400;
    font-style: italic;
}

@font-face {
    font-family: "Poppins";
    src: url("fonts/Poppins-Medium.ttf") format("truetype");
    font-weight: 500;
    font-style: normal;
}

@font-face {
    font-family: "Poppins";
    src: url("fonts/Poppins-MediumItalic.ttf") format("truetype");
    font-weight: 500;
    font-style: italic;
}

@font-face {
    font-family: "Poppins";
    src: url("fonts/Poppins-SemiBold.ttf") format("truetype");
    font-weight: 600;
    font-style: normal;
}

@font-face {
    font-family: "Poppins";
    src: url("fonts/Poppins-SemiBoldItalic.ttf") format("truetype");
    font-weight: 600;
    font-style: italic;
}

@font-face {
    font-family: "Poppins";
    src: url("fonts/Poppins-Bold.ttf") format("truetype");
    font-weight: 700;
    font-style: normal;
}

@font-face {
    font-family: "Poppins";
    src: url("fonts/Poppins-BoldItalic.ttf") format("truetype");
    font-weight: 700;
    font-style: italic;
}

@font-face {
    font-family: "Poppins";
    src: url("fonts/Poppins-ExtraBold.ttf") format("truetype");
    font-weight: 800;
    font-style: normal;
}

@font-face {
    font-family: "Poppins";
    src: url("fonts/Poppins-ExtraBoldItalic.ttf") format("truetype");
    font-weight: 800;
    font-style: italic;
}

@font-face {
    font-family: "Poppins";
    src: url("fonts/Poppins-Black.ttf") format("truetype");
    font-weight: 900;
    font-style: normal;
}

@font-face {
    font-family: "Poppins";
    src: url("fonts/Poppins-BlackItalic.ttf") format("truetype");
    font-weight: 900;
    font-style: italic;
}


/*** Général ***/

html
{
	scroll-behavior: smooth;
	background-color: #0A0A0A;
	position: relative;
	min-height: 100vh;
	color: #FFFFFF;
}

body
{
	font-family: "Poppins", sans-serif;
	line-height: 1.5;
	margin: 130px 30px 30px 30px;
	font-size: 14px;
	font-weight: 300;
	min-height: calc(100vh - 160px);
	position: relative;
	z-index: 1;
}

a {
	text-decoration: none;
	color: #FFFFFF;
}

h1, h2, h3, h4, h5, h6, th, strong {
	font-weight: 500;
}

input, select, option, textarea {
	padding: 6px;
	font-family: "Poppins", sans-serif;
	font-weight: 300;
}

input[type="date"] {
	height: 35px;
}

textarea {
	height: 100px;
	resize: none;
}

label {
	padding-right: 10px;
}

.button {
	padding: 0px 20px;
	line-height: 250%;
	background-color: #0F51A9;
	border-radius: 3px;
	color: #FFFFFF;
	box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.15);
	border: none;
	cursor: pointer;
	white-space: nowrap;
	font-weight: 600;
	font-size: 1em;
}

.button:hover {
	background-color: #03367B;
}

.loader {
	width: 60px;
	height: 60px;
	margin-top: -30px;
	margin-left: -30px;
	border-radius: 50%;
	display: inline-block;
	border-top: 4px solid #0F51A9;
	border-right: 4px solid transparent;
	box-sizing: border-box;
	animation: rotate 1s linear infinite;
	position: absolute;
	top: 50%;
	left: 50%;
}

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

.switch {
	position: relative;
	display: inline-block;
	width: 30px;
	height: 20px;
	margin-top: 1px;
}

.switch input {
	opacity: 0;
	width: 0;
	height: 0;
}

.switch-slider {
	position: absolute;
	cursor: pointer;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background-color: #CCCCCC;
	-webkit-transition: .4s;
	transition: .4s;
}

.switch-slider:before {
	position: absolute;
	content: "";
	height: 14px;
	width: 14px;
	left: 4px;
	bottom: 3px;
	background-color: white;
	-webkit-transition: .4s;
	transition: .4s;
}

input:checked + .switch-slider {
	background-color: #0F51A9;
}

input:focus + .switch-slider {
	box-shadow: 0 0 1px #0F51A9;
}

input:checked + .switch-slider:before {
	-webkit-transform: translateX(18px);
	-ms-transform: translateX(18px);
	transform: translateX(18px);
}

.switch-slider.round {
	border-radius: 20px;
}

.switch-slider.round:before {
	border-radius: 50%;
}

.tabs {
	display: flex;
	background-color: #212121;
	border-radius: 8px;
	padding: 4px;
	margin: 30px 0;
	box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
	gap: 4px;
}

.tab {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 12px 20px;
	background-color: transparent;
	color: #CCCCCC;
	text-decoration: none;
	border-radius: 6px;
	transition: all 0.3s ease;
	font-weight: 500;
	font-size: 14px;
	flex: 1;
	position: relative;
	overflow: hidden;
}

.tab:hover {
	background-color: #2A2A2A;
	color: #FFFFFF;
	transform: translateY(-1px);
}

.tab.active {
	background-color: #0F51A9;
	color: #FFFFFF;
	box-shadow: 0 2px 8px rgba(15, 81, 169, 0.3);
}

.tab.active:hover {
	background-color: #03367B;
	transform: translateY(-1px);
}

.tab span {
	font-size: 14px;
}

.tab::before {
	content: '';
	position: absolute;
	top: 0;
	left: -100%;
	width: 100%;
	height: 100%;
	background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.1), transparent);
	transition: left 0.5s;
}

.tab:hover::before {
	left: 100%;
}

.edit-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 30px;
	padding-bottom: 20px;
	border-bottom: 2px solid #404040;
}

.edit-header h3 {
	font-size: 20px;
	font-weight: 600;
	color: #FFFFFF;
	margin: 0;
}

.edit-header h3 i {
	margin-right: 10px;
	color: #0F51A9;
}

.back-btn {
	display: inline-flex;
	align-items: center;
	padding: 10px 16px;
	background-color: #4F4E4E;
	color: #FFFFFF;
	text-decoration: none;
	border-radius: 4px;
	font-size: 14px;
	font-weight: 500;
	transition: all 0.2s ease;
}

.back-btn:hover {
	background-color: #0F51A9;
	transform: translateY(-1px);
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}

.back-btn i {
	margin-right: 8px;
}

.module-form {
	background-color: #212121;
	border-radius: 8px;
	padding: 30px;
	box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
}

.form-section h4 {
	font-size: 16px;
	font-weight: 600;
	color: #FFFFFF;
	margin-bottom: 20px;
	padding-bottom: 10px;
	border-bottom: 1px solid #404040;
}

.form-group {
	margin-bottom: 20px;
}

.form-group label {
	display: block;
	margin-bottom: 8px;
	font-weight: 500;
	color: #FFFFFF;
	font-size: 14px;
}

.form-group input,
.form-group textarea,
.form-group select {
	width: 100%;
	box-sizing: border-box;
	padding: 12px;
	background-color: #1A1A1A;
	border: 1px solid #404040;
	border-radius: 4px;
	color: #FFFFFF;
	font-family: "Poppins", sans-serif;
	font-size: 14px;
	transition: border-color 0.2s ease;
}

.form-group input:focus,
.form-group textarea:focus,
.form-group select:focus {
	outline: none;
	border-color: #0F51A9;
	box-shadow: 0 0 0 2px rgba(15, 81, 169, 0.2);
}

.form-group small {
	display: block;
	margin-top: 5px;
	color: #CCCCCC;
	font-size: 12px;
	font-style: italic;
}

.switch-label {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 0;
}

.switch-label span {
	font-weight: 500;
	color: #FFFFFF;
}

.form-actions {
	display: flex;
	justify-content: flex-end;
	gap: 15px;
	padding-top: 20px;
	border-top: 1px solid #404040;
}

.cancel-btn {
	display: inline-flex;
	align-items: center;
	padding: 12px 20px;
	background-color: #6c757d;
	color: #FFFFFF;
	border: none;
	border-radius: 4px;
	cursor: pointer;
	font-family: "Poppins", sans-serif;
	font-size: 14px;
	font-weight: 500;
	transition: all 0.2s ease;
	text-decoration: none;
}

.cancel-btn:hover {
	background-color: #5a6268;
	transform: translateY(-1px);
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}

.save-btn {
	display: inline-flex;
	align-items: center;
	padding: 12px 20px;
	background-color: #0F51A9;
	color: #FFFFFF;
	border: none;
	border-radius: 4px;
	cursor: pointer;
	font-family: "Poppins", sans-serif;
	font-size: 14px;
	font-weight: 500;
	transition: all 0.2s ease;
}

.save-btn:hover {
	background-color: #03367B;
	transform: translateY(-1px);
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}

.cancel-btn i,
.save-btn i {
	margin-right: 8px;
}


/*** Connexion / Inscription / Mot de passe oublié ***/

#connection, #inscription, #forgot-password {
	background-color: #212121;
	box-shadow: 0 8px 16px rgba(0, 0, 0, 0.15);
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	padding: 60px 80px;
	border-radius: 8px;
	width: 320px;
	min-height: 420px;
}

#connection h1, #inscription h1, #forgot-password h1 {
	margin-bottom: 30px;
	text-align: center;
}

#connection input[type="text"], #connection input[type="password"], #inscription input[type="text"], #inscription input[type="password"], #forgot-password input[type="text"], #forgot-password input[type="password"] {
	font-size: 14px;
}

#connection td, #inscription td, #forgot-password td {
	height: 32px;
	vertical-align: middle;
	padding-bottom: 3px;
}

#connection label:not(.switch), #inscription label:not(.switch), #forgot-password label:not(.switch) {
	display: block;
	width: 123px;
}

#connection .submit, #inscription .submit, #forgot-password .submit {
	background-color: #4B4B4B;
	width: fit-content;
	margin: auto;
}

#connection .submit:hover, #inscription .submit:hover, #forgot-password .submit:hover {
	background-color: #393939;
}

#connection .connection-footer, #inscription .inscription-footer, #forgot-password .forgot-password-footer {
	display: flex;
    justify-content: right;
    position: absolute;
    bottom: 10px;
    left: 15px;
    right: 15px;
    color: #808080;
}

#connection .connection-footer a, #inscription .inscription-footer a, #forgot-password .forgot-password-footer a {
	color: #808080;
	font-style: italic;
}

#connection .connection-footer a:hover, #inscription .inscription-footer a:hover, #forgot-password .forgot-password-footer a:hover {
	color: #FFFFFF;
}


/*** Menus ***/

#top-menu {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	height: 65px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 10px 40px;
	background-color: #212121;
	box-shadow: 2px 2px 12px #000;
	z-index: 100000;
}

#top-menu .top-menu-item {
	display: flex;
	justify-content: center;
	align-items: center;
	height: 65px;
}

#top-menu .top-menu-item > a {
	height: 50px;
}

#top-menu .top-menu-item img {
	width: 50px;
	height: 50px;
}

#top-menu .top-menu-item img {
	height: 50px;
}

#top-menu .top-menu-item img.avatar {
	border-radius: 50%;
}

.avatar-container {
	position: relative;
	z-index: 10000;
}

.avatar-menu {
	position: absolute;
	top: 100%;
	right: 0;
	background-color: #212121;
	border-radius: 8px;
	box-shadow: 0 8px 16px rgba(0, 0, 0, 0.3);
	padding: 8px 0;
	min-width: 200px;
	opacity: 0;
	visibility: hidden;
	transform: translateY(-10px);
	transition: all 0.3s ease;
	z-index: 9999;
	margin-top: 8px;
}

.avatar-container:hover .avatar-menu,
.avatar-menu.show {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

.avatar-menu-item {
	display: flex;
	align-items: center;
	height: 30px !important;
	padding: 12px 16px;
	color: #FFFFFF;
	text-decoration: none;
	transition: background-color 0.2s ease;
	font-size: 14px;
	font-weight: 400;
}

.avatar-menu-item:hover {
	background-color: #2A2A2A;
}

.avatar-menu-item i {
	margin-right: 12px;
	width: 16px;
	text-align: center;
	font-size: 14px;
}

.avatar-menu-item.admin {
	color: #FFD700;
}

.avatar-menu-item.admin:hover {
	background-color: #2A2A1A;
}

.avatar-menu-item.logout {
	color: #FF6B6B;
}

.avatar-menu-item.logout:hover {
	background-color: #3A1A1A;
}

.avatar-menu-separator {
	height: 1px;
	background-color: #3A3A3A;
	margin: 8px 0;
}


/*** Pop-up ***/

#info-popup {
	background-color: #0F51A9;
    color: #FFFFFF;
    position: fixed;
    top: 100px;
    right: 15px;
    padding: 10px 20px;
    border-radius: 7px;
    box-shadow: 6px 6px 10px #000000;
    width: 250px;
    display: flex;
    opacity: 0;
    transition: opacity 0.3s;
    z-index: 10;
}

#info-popup div:first-child {
	margin-top: 5px;
	margin-right: 10px;
	font-size: 25px;
}

#info-popup div p:first-child div p:first-child {
	font-size: 16px;
	margin-top: 12px;
	margin-bottom: 0;
}


/*** Page d'accueil ***/

#home h2 {
	font-size: 24px;
}

#home .modules-container {
	padding: 20px 0;
}

#home .category-section {
	margin-bottom: 40px;
}

#home .category-section:last-child {
	margin-bottom: 0;
}

#home .category-title {
	font-size: 20px;
	font-weight: 600;
	color: #FFFFFF;
	margin: 0 0 20px 0;
	padding-bottom: 10px;
	border-bottom: 1px solid #404040;
	position: relative;
}


#home .modules-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: 20px;
}

#home .module-card {
	background-color: #212121;
	border-radius: 12px;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
	transition: all 0.3s ease;
	border: 1px solid #2A2A2A;
	overflow: hidden;
	position: relative;
}

#home .module-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.25);
	border-color: #0F51A9;
}

#home .module-link {
	display: block;
	text-decoration: none;
	color: inherit;
	height: 100%;
}

#home .module-image {
	width: 100%;
	height: 120px;
	background-color: #2A2A2A;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	position: relative;
}

#home .module-logo {
	width: 100%;
	height: 100%;
	object-fit: contain;
	transition: transform 0.3s ease;
}

#home .module-card:hover .module-logo {
	transform: scale(1.05);
}

#home .module-name {
	padding: 16px;
	font-size: 16px;
	font-weight: 600;
	color: #FFFFFF;
	text-align: center;
	line-height: 1.3;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	margin: 0;
}

#home .no-modules {
	text-align: center;
	padding: 60px 20px;
	color: #888888;
	font-style: italic;
	background-color: #212121;
	border-radius: 12px;
	border: 1px solid #2A2A2A;
}

#home .no-modules p {
	margin: 0 0 20px 0;
	font-size: 16px;
}

#home .manage-modules-btn {
	display: inline-block;
	padding: 12px 24px;
	background-color: #0F51A9;
	color: #FFFFFF;
	text-decoration: none;
	border-radius: 6px;
	font-weight: 600;
	font-size: 14px;
	transition: all 0.3s ease;
	border: 2px solid #0F51A9;
	font-style: normal;
}

#home .manage-modules-btn:hover {
	background-color: #03367B;
	border-color: #03367B;
	box-shadow: 0 4px 12px rgba(15, 81, 169, 0.3);
}



/*** Administration ***/

#administration h2 {
	font-size: 24px;
}

#administration .parameters {
	padding: 30px 20px;
	background-color: #212121;
	border-radius: 8px;
	box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
}

#administration .parameters table tr td {
	padding: 6px;
	vertical-align: middle;
}

#administration .parameters #empty-cache-btn {
	display: block;
	width: 100px;
	text-align: center;
	color: #FFFFFF;
	border: 1px solid #FFFFFF;
	padding: 10px 20px;
	cursor: pointer;
	border-radius: 4px;
	margin-top: 20px;
	margin-left: 12px;
	transition: background-color 0.2s, color 0.2s;
}

#administration .parameters #empty-cache-btn:hover {
	background-color: #FFFFFF;
	color: #000000;
}

#administration .modules-table {
	width: 100%;
	border-collapse: collapse;
	background-color: #212121;
	border-radius: 8px;
	overflow: hidden;
	box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
}

#administration  .modules-table thead {
	background-color: #404040;
	border-bottom: 2px solid #606060;
}

#administration  .modules-table th {
	padding: 16px 12px;
	text-align: left;
	font-weight: 600;
	font-size: 14px;
	color: #FFFFFF;
	border-bottom: none;
	position: relative;
}

#administration .modules-table th:nth-child(1), #administration .modules-table th:nth-child(4), #administration .modules-table th:nth-child(5), #administration .modules-table th:nth-child(6) {
	text-align: center;
}

#administration .modules-table tbody tr {
	border-bottom: 1px solid #2A2A2A;
	transition: background-color 0.2s ease;
}

#administration .modules-table tbody tr:hover {
	background-color: #2A2A2A;
}

#administration .modules-table tbody tr:last-child {
	border-bottom: none;
}

#administration .modules-table td {
	padding: 16px 12px;
	font-size: 14px;
	vertical-align: middle;
}

#administration .module-id {
	width: 60px;
	font-weight: 600;
	text-align: center;
}

#administration .module-name {
	width: 250px;
}

#administration .module-name, #administration .module-description {
	font-weight: 500;
	line-height: 1.4;
}

#administration .module-name-content {
	display: flex;
	align-items: center;
	gap: 12px;
}

#administration .module-image {
	width: 32px;
	height: 32px;
	object-fit: cover;
	flex-shrink: 0;
}

#administration .module-name-text {
	font-weight: 500;
}

#administration .module-category, #administration .module-status, #administration .module-actions {
	text-align: center;
	width: 150px;
}

#administration .status-badge {
	display: inline-block;
	padding: 6px 12px;
	border-radius: 4px;
	font-size: 12px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	cursor: pointer;
}

#administration .status-badge.enabled {
	background-color: #28a745;
	color: #FFFFFF;
	box-shadow: 0 2px 4px rgba(40, 167, 69, 0.3);
}

#administration .status-badge.disabled {
	background-color: #dc3545;
	color: #FFFFFF;
	box-shadow: 0 2px 4px rgba(220, 53, 69, 0.3);
}

#administration .module-actions .action-btn {
	display: inline-block;
	margin: 2px;
	padding: 8px 12px;
	border: none;
	border-radius: 4px;
	font-weight: 500;
	cursor: pointer;
	transition: all 0.2s ease;
	text-decoration: none;
	font-family: "Poppins", sans-serif;
}

#administration .action-btn i {
	margin-right: 4px;
	font-size: 11px;
}

#administration .edit-btn {
	background-color: #4F4E4E;
	color: #FFFFFF;
}

#administration .edit-btn:hover {
	background-color: #0F51A9;
	transform: translateY(-1px);
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}

#administration .toggle-btn.enable {
	background-color: #28a745;
	color: #FFFFFF;
}

#administration .toggle-btn.enable:hover {
	background-color: #218838;
	transform: translateY(-1px);
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}

#administration #module-edit-form .form-group label {
	display: flex;
	justify-content: left;
	gap: 10px;
}

#administration .logo-upload-container {
	display: flex;
	flex-direction: column;
	gap: 15px;
}

#administration .current-logo {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 15px;
	background-color: #2A2A2A;
	border-radius: 6px;
	border: 1px solid #404040;
}

#administration .current-logo-preview {
	width: 48px;
	height: 48px;
	object-fit: cover;
	border-radius: 4px;
}

#administration .current-logo-text {
	color: #CCCCCC;
	font-size: 14px;
	font-weight: 500;
}

#administration #module_logo {
	display: none;
}

#administration .file-upload-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 12px 20px;
	background-color: #0F51A9;
	color: #FFFFFF;
	border-radius: 4px;
	cursor: pointer;
	transition: background-color 0.2s ease;
	font-weight: 500;
	text-align: center;
	width: fit-content;
}

#administration .file-upload-btn:hover {
	background-color: #03367B;
}

#administration .file-upload-btn i {
	font-size: 14px;
}

#administration .file-upload-row {
	display: flex;
	align-items: center;
	gap: 15px;
}

#administration .file-name-display {
	color: #CCCCCC;
	font-size: 13px;
	font-style: italic;
	max-width: 200px;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

#administration .avatar-upload-container {
	display: flex;
	flex-direction: column;
	gap: 15px;
}

#administration .current-avatar {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 15px;
	background-color: #2A2A2A;
	border-radius: 6px;
	border: 1px solid #404040;
}

#administration .current-avatar-preview {
	width: 48px;
	height: 48px;
	object-fit: cover;
	border-radius: 50%;
}

#administration .current-avatar-text {
	color: #CCCCCC;
	font-size: 14px;
	font-weight: 500;
}

#user_avatar {
	display: none;
}

#administration .users-table {
	width: 100%;
	border-collapse: collapse;
	background-color: #212121;
	border-radius: 8px;
	overflow: hidden;
	box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
}

#administration  .users-table thead {
	background-color: #404040;
	border-bottom: 2px solid #606060;
}

#administration  .users-table th {
	padding: 16px 12px;
	text-align: left;
	font-weight: 600;
	font-size: 14px;
	color: #FFFFFF;
}

#administration .users-table th:nth-child(1), #administration .users-table th:nth-child(4), #administration .users-table th:nth-child(5) {
	text-align: center;
}

#administration .users-table tbody tr {
	border-bottom: 1px solid #2A2A2A;
	transition: background-color 0.2s ease;
}

#administration .users-table tbody tr:hover {
	background-color: #2A2A2A;
}

#administration .users-table tbody tr:last-child {
	border-bottom: none;
}

#administration .users-table td {
	padding: 16px 12px;
	font-size: 14px;
	vertical-align: middle;
}

#administration .user-id {
	width: 60px;
	font-weight: 600;
	text-align: center;
}

#administration .user-name {
	width: 250px;
}

#administration .user-name, #administration .user-email {
	font-weight: 500;
	line-height: 1.4;
}

#administration .user-name-content {
	display: flex;
	align-items: center;
	gap: 12px;
}

#administration .user-avatar {
	width: 32px;
	height: 32px;
	border-radius: 50%;
	object-fit: cover;
	flex-shrink: 0;
}

#administration .user-name-text {
	font-weight: 500;
}

#administration .user-role, #administration .user-actions {
	text-align: center;
	width: 150px;
}

#administration .role-badge {
	display: inline-block;
	padding: 6px 12px;
	border-radius: 4px;
	font-size: 12px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

#administration .role-badge.admin {
	background-color: #dc3545;
	color: #FFFFFF;
	box-shadow: 0 2px 4px rgba(220, 53, 69, 0.3);
}

#administration .user-actions .action-btn {
	display: inline-block;
	margin: 2px;
	padding: 8px 12px;
	border: none;
	border-radius: 4px;
	font-weight: 500;
	cursor: pointer;
	transition: all 0.2s ease;
	text-decoration: none;
	font-family: "Poppins", sans-serif;
}

#administration .action-btn i {
	margin-right: 4px;
	font-size: 11px;
}

#administration #user-edit-form .form-group label {
	display: flex;
	justify-content: left;
	gap: 10px;
}

#administration .user-form {
	background-color: #212121;
	border-radius: 8px;
	padding: 30px;
	box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
}

#administration .logs {
	margin-top: 20px;
}

#administration .logs-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 20px;
	padding: 0 4px;
}

#administration .logs-header h3 {
	color: #FFFFFF;
	font-size: 18px;
	font-weight: 600;
	margin: 0;
}

#administration .logs-header h3 i {
	margin-right: 8px;
	color: #0F51A9;
}

#administration .logs-info {
	display: flex;
	align-items: center;
	gap: 15px;
}

#administration .logs-count {
	color: #B0B0B0;
	font-size: 14px;
	background-color: #2A2A2A;
	padding: 6px 12px;
	border-radius: 4px;
}

#administration .logs-table {
	width: 100%;
	border-collapse: collapse;
	background-color: #212121;
	border-radius: 8px;
	overflow: hidden;
	box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
}

#administration .logs-table thead {
	background-color: #404040;
	border-bottom: 2px solid #606060;
}

#administration .logs-table th {
	padding: 16px 12px;
	text-align: center;
	font-weight: 600;
	font-size: 14px;
	color: #FFFFFF;
	border-bottom: none;
	position: relative;
}

#administration .logs-table tbody tr {
	border-bottom: 1px solid #2A2A2A;
	transition: background-color 0.2s ease;
}

#administration .logs-table tbody tr:hover {
	background-color: #2A2A2A;
}

#administration .logs-table tbody tr:last-child {
	border-bottom: none;
}

#administration .logs-table td {
	padding: 16px 12px;
	font-size: 14px;
	vertical-align: middle;
}

#administration .log-id {
	width: 60px;
	font-weight: 600;
	text-align: center;
}

#administration .log-type {
	text-align: center;
}

#administration .type-badge {
	display: inline-block;
	padding: 4px 8px;
	border-radius: 4px;
	font-size: 12px;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

#administration .type-badge.inscription {
	background-color: #2196F3;
	color: #FFFFFF;
}

#administration .type-badge.mot-de-passe-oublié {
	background-color: #d4ae23;
	color: #FFFFFF;
}

#administration .type-badge.tentative-de-connexion-échouée {
	background-color: #F44336;
	color: #FFFFFF;
}

#administration .log-user {
	text-align: center;
}

#administration .user-info {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	font-size: 13px;
}

#administration .user-info i {
	font-size: 12px;
}

#administration .user-info.anonymous {
	color: #888888;
}

#administration .log-ip {
	text-align: center;
	font-family: 'Courier New', monospace;
	font-size: 13px;
	color: #B0B0B0;
}

#administration .log-creation-date {
	text-align: center;
	font-size: 13px;
	color: #B0B0B0;
}


#administration .no-logs {
	text-align: center;
	padding: 40px 20px;
	color: #888888;
	font-style: italic;
}

#administration .no-logs i {
	font-size: 24px;
	margin-bottom: 10px;
	display: block;
}

#administration .pagination {
	display: flex;
	justify-content: center;
	align-items: center;
	margin-top: 30px;
	gap: 8px;
}

#administration .pagination-btn {
	display: flex;
	align-items: center;
	gap: 6px;
	padding: 8px 16px;
	height: 16px;
	background-color: #404040;
	color: #FFFFFF;
	text-decoration: none;
	border-radius: 4px;
	font-size: 14px;
	transition: all 0.2s ease;
	border: none;
	height: 40px;
	box-sizing: border-box;
}

#administration .pagination-btn:hover {
	background-color: #0F51A9;
	transform: translateY(-1px);
}

#administration .pagination-btn:disabled {
	opacity: 0.5;
	cursor: not-allowed;
	transform: none;
}

#administration .pagination-numbers {
	display: flex;
	align-items: center;
	gap: 4px;
}

#administration .pagination-number {
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	background-color: #404040;
	color: #FFFFFF;
	text-decoration: none;
	border-radius: 4px;
	font-size: 14px;
	transition: all 0.2s ease;
	border: none;
	box-sizing: border-box;
}

#administration .pagination-number:hover {
	background-color: #0F51A9;
	transform: translateY(-1px);
}

#administration .pagination-number.active {
	background-color: #0F51A9;
	font-weight: 600;
}

#administration .pagination-ellipsis {
	padding: 0 8px;
	color: #888888;
	font-size: 14px;
}

/*** Mon compte ***/

#account {
	width: 100%;
	padding: 0;
}

#account h2 {
	animation: fadeInUp 0.6s ease forwards;
	opacity: 0;
	transform: translateY(20px);
	animation-delay: 0s;
}

#account .account-section {
	background-color: #212121;
	border-radius: 8px;
	box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
	margin-bottom: 30px;
	overflow: hidden;
	animation: fadeInUp 0.6s ease forwards;
	opacity: 0;
	transform: translateY(20px);
}

#account .account-section:nth-child(1) { animation-delay: 0.1s; }
#account .account-section:nth-child(2) { animation-delay: 0.2s; }
#account .account-section:nth-child(3) { animation-delay: 0.3s; }
#account .account-section:nth-child(4) { animation-delay: 0.4s; }

#account .section-header {
	padding: 20px 30px;
	border-bottom: 1px solid #2A2A2A;
	background-color: #1A1A1A;
}

#account .section-header h3 {
	font-size: 18px;
	font-weight: 600;
	color: #FFFFFF;
	margin: 0;
}

/* Avatar Section */
#account .avatar-container {
	position: relative;
	display: flex;
	justify-content: center;
	padding: 40px 30px;
}

#account .account-avatar {
	position: relative;
	width: 120px;
	height: 120px;
	border-radius: 50%;
	cursor: pointer;
	overflow: hidden;
	transition: all 0.3s ease;
	border: 3px solid #2A2A2A;
}

#account .account-avatar:hover {
	border-color: #0F51A9;
	transform: scale(1.05);
}

#account .account-avatar img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: all 0.3s ease;
}

#account .account-avatar:hover img {
	filter: brightness(0.7);
}

#account .avatar-overlay {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background-color: rgba(15, 81, 169, 0.9);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	opacity: 0;
	transition: all 0.3s ease;
	color: #FFFFFF;
	gap: 8px;
}

#account .account-avatar:hover .avatar-overlay {
	opacity: 1;
}

#account .avatar-overlay i {
	font-size: 20px;
}

#account .avatar-overlay span {
	font-size: 12px;
	font-weight: 500;
}

#account input[type="file"] {
	position: absolute;
	top: 0;
	left: 0;
	width: 120px;
	height: 120px;
	opacity: 0;
	cursor: pointer;
}

/* Form Groups */
#account .form-group {
	padding: 0 30px 20px 30px;
}

#account .form-group:last-child {
	padding-bottom: 0;
}

#account .form-group label {
	display: block;
	margin-bottom: 8px;
	font-weight: 500;
	color: #FFFFFF;
	font-size: 14px;
}

#account .form-group small {
	display: block;
	margin-top: 6px;
	color: #CCCCCC;
	font-size: 12px;
	font-style: italic;
}

#account .form-group input {
	width: 100%;
	box-sizing: border-box;
	padding: 12px;
	background-color: #1A1A1A;
	border: 1px solid #404040;
	border-radius: 4px;
	color: #FFFFFF;
	font-family: "Poppins", sans-serif;
	font-size: 14px;
	transition: border-color 0.2s ease;
}

#account .form-group input:focus {
	outline: none;
	border-color: #0F51A9;
	box-shadow: 0 0 0 2px rgba(15, 81, 169, 0.2);
}

#account .form-actions {
	display: flex;
	justify-content: flex-end;
	gap: 15px;
	padding: 20px 30px;
	border-top: 1px solid #2A2A2A;
}

#account .save-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 12px 20px;
	background-color: #0F51A9;
	color: #FFFFFF;
	border: none;
	border-radius: 4px;
	cursor: pointer;
	transition: all 0.2s ease;
	font-family: "Poppins", sans-serif;
	font-size: 14px;
	font-weight: 500;
}

#account .save-btn:hover {
	background-color: #03367B;
	transform: translateY(-1px);
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}

#account .save-btn i {
	font-size: 12px;
}

/* Account Actions */
#account .account-actions {
	padding: 30px;
	display: flex;
	justify-content: center;
}

#account .disconnect-btn {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 12px 24px;
	background-color: transparent;
	color: #FF6B6B;
	border: 2px solid #FF6B6B;
	border-radius: 6px;
	text-decoration: none;
	transition: all 0.3s ease;
	font-weight: 500;
	font-size: 14px;
}

#account .disconnect-btn:hover {
	background-color: #FF6B6B;
	color: #FFFFFF;
	transform: translateY(-2px);
	box-shadow: 0 4px 12px rgba(255, 107, 107, 0.3);
}

#account .disconnect-btn i {
	font-size: 16px;
}

/* Responsive */
@media (max-width: 768px) {
	#account .section-header,
	#account .form-group,
	#account .form-actions,
	#account .account-actions {
		padding: 20px;
	}
	
	#account .avatar-container {
		padding: 30px 20px;
	}
	
	#account .account-avatar {
		width: 100px;
		height: 100px;
	}
	
	#account input[type="file"] {
		width: 100px;
		height: 100px;
	}
}


/*** Mes modules ***/

#modules h2 {
	font-size: 24px;
}

#modules .modules-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));
	gap: 24px;
	padding: 20px 0;
}

#modules .module-card {
	background-color: #212121;
	border-radius: 12px;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
	transition: all 0.3s ease;
	border: 1px solid #2A2A2A;
	overflow: hidden;
	position: relative;
}

#modules .module-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.25);
	border-color: #0F51A9;
}

#modules .module-card-header {
	display: flex;
	align-items: flex-start;
	gap: 16px;
	padding: 20px;
	border-bottom: 1px solid #2A2A2A;
}

#modules .module-image-container {
	flex-shrink: 0;
	width: 60px;
	height: 60px;
	border-radius: 8px;
	overflow: hidden;
	background-color: #2A2A2A;
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
}

#modules .module-image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.3s ease;
}

#modules .module-card:hover .module-image {
	transform: scale(1.05);
}

#modules .module-info {
	flex: 1;
	min-width: 0;
	position: relative;
}

#modules .module-category {
	position: absolute;
	top: 0;
	right: 0;
	background-color: #0F51A9;
	color: #FFFFFF;
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	padding: 4px 8px;
	border-radius: 4px;
	box-shadow: 0 2px 4px rgba(15, 81, 169, 0.3);
	z-index: 1;
}

#modules .module-name {
	font-size: 18px;
	font-weight: 600;
	color: #FFFFFF;
	margin: 0 0 8px 0;
	line-height: 1.3;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	padding-right: 80px;
}

#modules .module-description {
	font-size: 14px;
	color: #CCCCCC;
	line-height: 1.4;
	margin: 0;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

#modules .module-card-footer {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 16px 20px;
	background-color: #1A1A1A;
}

#modules .module-status {
	display: flex;
	align-items: center;
	gap: 12px;
}

#modules .status-text {
	font-size: 14px;
	color: #CCCCCC;
	font-weight: 500;
}

#modules .module-card {
	animation: fadeInUp 0.6s ease forwards;
	opacity: 0;
	transform: translateY(20px);
}

#modules .module-card:nth-child(1) { animation-delay: 0.1s; }
#modules .module-card:nth-child(2) { animation-delay: 0.2s; }
#modules .module-card:nth-child(3) { animation-delay: 0.3s; }
#modules .module-card:nth-child(4) { animation-delay: 0.4s; }
#modules .module-card:nth-child(5) { animation-delay: 0.5s; }
#modules .module-card:nth-child(6) { animation-delay: 0.6s; }
#modules .module-card:nth-child(7) { animation-delay: 0.7s; }
#modules .module-card:nth-child(8) { animation-delay: 0.8s; }
#modules .module-card:nth-child(9) { animation-delay: 0.9s; }
#modules .module-card:nth-child(10) { animation-delay: 1s; }
#modules .module-card:nth-child(11) { animation-delay: 1.1s; }
#modules .module-card:nth-child(12) { animation-delay: 1.2s; }
#modules .module-card:nth-child(13) { animation-delay: 1.3s; }
#modules .module-card:nth-child(14) { animation-delay: 1.4s; }
#modules .module-card:nth-child(15) { animation-delay: 1.5s; }

@keyframes fadeInUp {
	to {
		opacity: 1;
		transform: translateY(0);
	}
}



