/* Styles pour l'emploi du temps - Harmonisé avec header et footer */
:root {
	/* Palette de couleurs harmonisée avec le header/footer */
	--primary-color: #2c3e50; /* Bleu principal */
	--secondary-color: #34495e; /* Bleu plus foncé */
	--accent-color: #3498db; /* Bleu clair - accent */
	--light-blue: #82b1ff; /* Bleu très clair */
	
	--light-color: #f8f9fa;
	--dark-color: #212529;
	--success-color: #27ae60;
	--warning-color: #f39c12;
	--danger-color: #e74c3c;
	
	--gray-100: #f8f9fa;
	--gray-200: #e9ecef;
	--gray-300: #dee2e6;
	--gray-400: #ced4da;
	--gray-500: #adb5bd;
	--gray-600: #6c757d;
	--gray-700: #495057;
	--gray-800: #343a40;
	--gray-900: #212529;
	
	--box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
	--border-radius: 8px;
	--event-border-radius: 6px;
  }
  
  /* Conteneur principal et alignement */
  .content-container {
	margin: 0 auto;
	padding: 0 25px;
  }
  
  /* Sélecteur de promotion */
  .promotion-selector {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
  }
  
  .promotion-selector button {
	border: none;
	background-color: rgba(52, 73, 94, 0.1);
	color: var(--gray-700);
	padding: 10px 20px;
	border-radius: var(--border-radius);
	font-weight: 600;
	cursor: pointer;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
	transition: all 0.3s ease;
  }
  
  .promotion-selector button.active {
	background-color: var(--accent-color);
	color: white;
	box-shadow: 0 4px 8px rgba(52, 152, 219, 0.3);
	transform: translateY(-2px);
  }
  
  .promotion-selector button:hover:not(.active) {
	background-color: rgba(52, 73, 94, 0.2);
	transform: translateY(-2px);
  }
  
  /* Section des messages */
  .message-board {
	border-radius: var(--border-radius);
	box-shadow: var(--box-shadow);
	border-top: 4px solid var(--accent-color);
	transition: transform 0.3s ease, box-shadow 0.3s ease;
  }
  
  .message-board:hover {
	transform: translateY(-5px);
	box-shadow: 0 8px 16px rgba(0, 0, 0, 0.1);
  }
  
  .message-board h3 {
	color: var(--primary-color);
	border-bottom: 2px solid var(--gray-200);
  }
  
  .message-board h3::after {
	content: "";
	position: absolute;
	width: 50%;
	height: 2px;
	background-color: var(--accent-color);
	bottom: -2px;
	left: 0;
  }
  
  #messages {
	font-size: 0.95rem;
	line-height: 1.6;
	padding: 10px 0;
  }
  
/* Reset de base */
body {
	margin: 0;
}

/* Styles du calendrier */
  #calendar {
	background-color: white;
	border-radius: var(--border-radius);
	padding: 20px;
	box-shadow: var(--box-shadow);
	margin-bottom: 30px;
	border-top: 4px solid var(--accent-color);
	transition: transform 0.3s ease, box-shadow 0.3s ease;
  }
  
  #calendar:hover {
	box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);
  }
  
/* Conteneur principal pleine largeur */
.calendar-wrapper {
	width: 100%;
	max-width: none;
	padding: 0;
	margin: 0 auto;
}

/* Mise en page calendar + sidebar */
.calendar-layout {
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.calendar-main,
.calendar-sidebar {
	width: 100%;
}

  /* En-tête du calendrier */
  .fc-header-toolbar {
	margin-bottom: 1.5em !important;
	padding: 0 10px;
  }
  
  .fc-toolbar h2 {
	font-size: 1.4rem;
	font-weight: 600;
	color: var(--primary-color);
  }
  
  /* Boutons FullCalendar */
  .fc-toolbar button {
	background: linear-gradient(135deg, var(--primary-color), var(--secondary-color));
	box-shadow: 0 2px 4px rgba(44, 62, 80, 0.2);
	font-weight: 500;
	transition: all 0.3s ease;
	color:white;
  }
  
  .fc-toolbar button:hover {
	background: linear-gradient(135deg, #3a506b, #1e3449);
	border-color: var(--secondary-color);
	box-shadow: 0 4px 8px rgba(44, 62, 80, 0.3);
  }
 
  .fc-toolbar button:disabled {
        display: none;
  }

  .fc-today-button {
	text-transform: uppercase;
	font-size: 0.85rem !important;
	letter-spacing: 0.5px;
  }
  
  /* Événements */
  .fc-event {
	border: none !important;
	border-radius: var(--event-border-radius) !important;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
	font-size: 0.9rem;
	line-height: 1.4;
	overflow: hidden;
	cursor: pointer;
	transition: all 0.3s ease;
	box-sizing: border-box;
	left: 0 !important;
	right: 0 !important;
	width: 100% !important;
	max-width: calc(100% - 2px);
  }
  
  .fc-event:hover {
	box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
	transform: scale(1.01);
	z-index: 10;
  }
  
  .fc-time-grid-event .fc-time {
	font-weight: 700;
	font-size: 1.1em !important;
	text-align: center;
	padding-top: 0;
  }
  
  .fc-time-grid-event .fc-content {
	padding: 6px 4px;
  }
  
  /* Cellules et axes */
  .fc-axis {
	font-weight: 600;
	color: var(--gray-700);
  }
  
  .fc th {
	font-weight: 600;
	padding: 10px 0;
	background-color: var(--gray-100);
	border-color: var(--gray-300);
  }
  
  .fc td {
	border-color: var(--gray-300);
  }
  
  .fc-day-header {
	text-transform: uppercase;
	font-size: 0.85rem;
	letter-spacing: 0.5px;
  }
  
  .fc-today {
	background-color: rgba(52, 152, 219, 0.05) !important;
  }
  
  /* Classes de couleurs modernisées pour les matières */
  .EGOD {
	background-color: var(--primary-color) !important; /* Bleu foncé */
	color: white !important;
  }
  
  .WIM {
	background-color: var(--accent-color) !important; /* Bleu accent */
	color: white !important;
  }
  
  .MATHS {
	background-color: #2980b9 !important; /* Bleu moyen */
	color: white !important;
  }
  
  .APL {
	background-color: #3498db !important; /* Bleu */
	color: white !important;
  }
  
  .ASR {
	background-color: #1abc9c !important; /* Turquoise */
	color: white !important;
  }
  
  .ANGLAIS {
	background-color: #85c1e9 !important; /* Bleu clair */
	color: var(--gray-800) !important;
  }
  
  .PPP {
	background-color: #283593 !important; /* Indigo */
	color: white !important;
  }
  
  .SGBD {
	background-color: #1a237e !important; /* Indigo foncé */
	color: white !important;
  }
  
  /* Animation de chargement */
  #calendar.loading {
	position: relative;
  }
  
  #calendar.loading::after {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background-color: rgba(255, 255, 255, 0.7);
	display: flex;
	justify-content: center;
	align-items: center;
	z-index: 10;
  }
  
  #calendar.loading::before {
	content: "";
	position: absolute;
	width: 50px;
	height: 50px;
	border: 5px solid #f3f3f3;
	border-top: 5px solid var(--accent-color);
	border-radius: 50%;
	top: 50%;
	left: 50%;
	margin-top: -25px;
	margin-left: -25px;
	animation: spin 1s linear infinite;
	z-index: 11;
  }
  
  @keyframes spin {
	0% { transform: rotate(0deg); }
	100% { transform: rotate(360deg); }
  }
  
  /* Styles responsifs */
  @media (max-width: 992px) {
	.calendar-message-container {
	  flex-direction: column;
	}
	
	.message-board {
	  margin-top: 30px;
	}
	
	.fc-toolbar {
	  flex-direction: column;
	  align-items: flex-start;
	}
	
	.fc-toolbar .fc-left,
	.fc-toolbar .fc-center,
	.fc-toolbar .fc-right {
	  margin-bottom: 15px;
	}
  }
  
  @media (max-width: 768px) {
	.content-container {
	  padding: 0 15px;
	}
	
	.promotion-selector {
	  overflow-x: auto;
	  white-space: nowrap;
	  flex-wrap: nowrap;
	}
	
	.fc-toolbar h2 {
	  font-size: 1.2rem;
	}
	
	.fc-header-toolbar {
	  padding: 0;
	}
	
	.fc-scroller {
	  overflow-x: auto !important;
	}
	
	.fc-time-grid-event {
	  min-height: 35px;
	  font-size: 12px;
	}
	
	.fc-time {
	  font-size: 12px !important;
	}
	
	.fc-event {
	  margin-bottom: 3px;
	}

	/* Réorganisation mobile pour afficher la salle */
	#calendar .fc-time-grid-event {
	  display: flex;
	  flex-direction: column;
	  justify-content: flex-start;
	  padding: 4px 6px 6px;
	  min-height: 60px;
	}

	#calendar .fc-time-grid-event br {
	  display: none;
	}

	#calendar .fc-time-grid-event .fc-content {
	  order: 0;
	  flex: 0 0 auto;
	  padding: 0;
	  margin-bottom: 3px;
	  display: flex;
	  flex-direction: column;
	  gap: 2px;
	  align-items: center;
	  text-align: center;
	}

	#calendar .fc-time-grid-event .fc-content .fc-time {
	  font-size: 13px !important;
	  text-align: center;
	  margin-bottom: 0;
	  width: 100%;
	}

	#calendar .fc-time-grid-event .fc-content .fc-title {
	  font-size: 13px;
	}

	#calendar .fc-time-grid-event > div:not([class]) {
	  order: 1;
	  font-size: 12px;
	  line-height: 1.25;
	}

	#calendar .fc-time-grid-event > div:not([class]):last-of-type {
	  font-weight: 600;
	}
  }
  
  @media (max-width: 576px) {
	.content-container {
	  padding: 0 10px;
	}
	
	.fc-toolbar {
	  margin-top: 0;
	  padding: 0;
	}
	
	.fc-today-button {
	  display: none;
	}
	
	.promotion-selector button {
	  font-size: 12px;
	  padding: 8px 14px;
	}
	
	.fc-time-grid-container {
	  height: auto !important;
	  min-height: 450px;
	}
	
	#calendar .fc-time-grid-event {
	  min-height: 72px;
	}

	.fc-resource-cell {
	  min-width: 90px;
	}
  }
  
  /* Classes pour les cours */
  .course-title {
	font-weight: 600;
	margin-top: 2px;
  }
  
  .course-location {
	font-size: 0.85em;
	margin-top: 4px;
  }
  
  /* Style de la date courante */
  .date-display {
	font-style: italic;
	font-size: 0.9rem;
	opacity: 0.9;
  }
  
  /* Styles pour le modal des cours */
  .modal-course {
	box-shadow: 0 5px 25px rgba(0, 0, 0, 0.2);
	border-radius: var(--border-radius);
	overflow: hidden;
  }
  
  .modal-course .modal-header {
	background: linear-gradient(135deg, var(--primary-color), var(--accent-color));
	color: white;
	border-bottom: none;
	padding: 15px 20px;
	border-radius: 8px 8px 0 0;
  }
  
  .modal-course .modal-title {
	font-weight: 600;
	font-size: 1.2rem;
  }
  
  .modal-course .modal-body {
	padding: 20px;
  }
  
  .course-details {
	margin-bottom: 15px;
  }
  
  .course-details-item {
	display: flex;
	margin-bottom: 12px;
	align-items: flex-start;
  }
  
  .course-details-icon {
	min-width: 30px;
	text-align: center;
	color: var(--accent-color);
	margin-right: 10px;
	font-size: 1.1rem;
  }
  
  .course-detail-value {
	font-weight: 500;
  }
  
  .course-detail-label {
	color: var(--gray-600);
	font-size: 0.9rem;
	display: block;
  }
  
  .modal-course .modal-footer {
	border-top: 1px solid var(--gray-200);
	padding: 15px 20px;
  }
  
  .modal-course .btn-close-course {
	background: linear-gradient(135deg, var(--primary-color), var(--accent-color));
	color: white;
	border: none;
	padding: 8px 20px;
	border-radius: 5px;
	font-weight: 500;
	transition: all 0.3s ease;
  }
  
  .modal-course .btn-close-course:hover {
	background: linear-gradient(135deg, var(--accent-color), var(--primary-color));
	transform: translateY(-2px);
	box-shadow: 0 4px 8px rgba(52, 152, 219, 0.3);
  }
  
  /* Badge pour le type de cours */
  .course-type-badge {
	display: inline-block;
	padding: 4px 10px;
	border-radius: 20px;
	font-size: 0.85rem;
	font-weight: 500;
	margin-right: 5px;
  }
  
  .course-type-badge.cm {
	background-color: rgba(52, 152, 219, 0.15);
	color: var(--accent-color);
  }
  
  .course-type-badge.td {
	background-color: rgba(46, 204, 113, 0.15);
	color: #27ae60;
  }
  
  .course-type-badge.tp {
	background-color: rgba(155, 89, 182, 0.15);
	color: #8e44ad;
  }
  
  /* Styles pour les raccourcis */
  .shortcuts {
	border-radius: var(--border-radius);
	box-shadow: var(--box-shadow);
	border-top: 4px solid var(--accent-color);
	transition: transform 0.3s ease, box-shadow 0.3s ease;
  }
  
  .shortcuts:hover {
	transform: translateY(-5px);
	box-shadow: 0 8px 16px rgba(0, 0, 0, 0.1);
  }
  
  .shortcuts h4 {
	color: var(--primary-color);
	border-bottom: 2px solid var(--gray-200);
  }
  
  .shortcuts h4::after {
	content: "";
	position: absolute;
	width: 50%;
	height: 2px;
	background-color: var(--accent-color);
	bottom: -2px;
	left: 0;
  }
  
  .shortcuts ul {
	padding-left: 0;
	list-style-type: none;
  }
  
  .shortcuts li {
	margin-bottom: 8px;
  }
  
  .shortcuts a {
	color: var(--gray-700);
	display: block;
	padding: 8px 10px;
	border-radius: 4px;
	transition: all 0.3s ease;
	text-decoration: none;
  }
  
  .shortcuts a:hover {
	background-color: rgba(52, 152, 219, 0.1);
	color: var(--accent-color);
	transform: translateX(5px);
  }
  
  .shortcuts a i {
	color: var(--accent-color);
	margin-right: 8px;
	width: 20px;
	text-align: center;
  }


  /* POP UP COURS */

  .course-popup {
    display: none;
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background-color: white;
    border-radius: 8px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
    z-index: 10000;
    width: 90%;
    max-width: 500px;
    max-height: 90vh;
    overflow-y: auto;
    padding: 20px;
}

/* En-tête de la popup */
.course-popup-header {
    border-bottom: 1px solid #e5e5e5;
    padding-bottom: 10px;
    margin-bottom: 15px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.course-popup-title {
    font-size: 1.25rem;
    font-weight: 600;
    margin: 0;
    color: #333;
}

.course-popup-close {
    background: none;
    border: none;
    font-size: 1.5rem;
    cursor: pointer;
    color: #777;
    transition: color 0.2s;
}

.course-popup-close:hover {
    color: #333;
}

/* Corps de la popup */
.course-popup-body {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.course-popup-info i {
    margin-right: 12px;
    min-width: 20px;
    color: #444;
}

/* Overlay de fond sombre */
.course-popup-overlay {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(0, 0, 0, 0.5);
    z-index: 9999;
}

/* Adaptations mobiles spécifiques */
@media (max-width: 576px) {
    .course-popup {
        width: 95%;
        padding: 15px;
    }
    
    .course-popup-title {
        font-size: 1.1rem;
    }
    
    .course-popup-info {
        font-size: 0.95rem;
    }
}

/* Style pour les événements du calendrier pour indiquer qu'ils sont cliquables */
.fc-time-grid-event.custom-event {
    cursor: pointer;
    transition: box-shadow 0.2s;
}

.fc-time-grid-event.custom-event:hover {
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}

/* Sélecteur de groupe */
/* Styles pour le sélecteur de groupes */
.group-selector-container {
	background-color: white;
	border-radius: var(--border-radius);
	padding: 15px;
	box-shadow: var(--box-shadow);
	border-top: 3px solid var(--accent-color);
	transition: transform 0.3s ease, box-shadow 0.3s ease;
  }
  
  .group-selector-container:hover {
	transform: translateY(-3px);
	box-shadow: 0 6px 12px rgba(0, 0, 0, 0.1);
  }
  
  .group-selector-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 12px;
	border-bottom: 1px solid var(--gray-200);
	padding-bottom: 10px;
  }
  
  .group-selector-header h5 {
	margin: 0;
	color: var(--primary-color);
	font-weight: 600;
	font-size: 1rem;
  }
  
  .group-actions {
	display: flex;
	gap: 8px;
  }
  
  .group-actions button {
	font-size: 0.8rem;
	padding: 4px 8px;
	border-radius: 4px;
  }
  
  .group-checkboxes-container {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
  }
  
  .group-checkbox {
	display: flex;
	align-items: center;
	background-color: var(--gray-100);
	padding: 6px 10px;
	border-radius: 4px;
	transition: background-color 0.2s;
	cursor: pointer;
	user-select: none;
  }
  
  .group-checkbox:hover {
	background-color: var(--gray-200);
  }
  
  .group-checkbox input[type="checkbox"] {
	margin-right: 6px;
  }
  
  .group-checkbox.active {
	background-color: rgba(52, 152, 219, 0.15);
	border-left: 2px solid var(--accent-color);
  }
  
  /* Styles responsifs pour le sélecteur de groupes */
  @media (max-width: 768px) {
	.group-selector-header {
	  flex-direction: column;
	  align-items: flex-start;
	}
	
	.group-actions {
	  margin-top: 10px;
	}
	
	.group-checkboxes-container {
	  display: grid;
	  grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
	}
  }
  
  @media (max-width: 576px) {
	.group-checkboxes-container {
	  grid-template-columns: repeat(2, 1fr);
	}
	
	.group-checkbox {
	  font-size: 0.85rem;
	}
  }

