body{}
html{font-size:.93rem;}
img{
	border:0;
}
td{
	vertical-align:top;
	white-space:nowrap;
}

.datepicker .datepicker-days table {
	border-collapse: separate;
}

.datepicker .datepicker-days .datepicker-switch {
	background-color:#F6F6F6;
	border: 1px solid #C5C5C5 !important;
}
.datepicker .datepicker-days .prev {
	background-color:#F6F6F6;
	border: 1px solid #C5C5C5 !important;
}
.datepicker .datepicker-days .next {
	background-color:#F6F6F6;
	border: 1px solid #C5C5C5 !important;
}

.datepicker .datepicker-days td.day {
	vertical-align:middle;
	padding:4px;
	background-color:#F6F6F6;
	border: 1px solid #C5C5C5 !important;
}

.datepicker-dropdown {
	z-index:1100 !important;
}

hr{
	width: 100%; 
	color: #e5e5e5; 
	height: 1px;
	padding:0;
	margin-top:8px;
	margin-bottom:8px;
}
.footer{height:40px;}
.wrap{white-space: normal;}
.nowrap{white-space: normal;}

/* width */
.w12 {width:12px}
.w25 {width:25px}
.w40 {width:40px}
.w50{width:50px}
.w100 {width:100px}
.w140 {width:140px;min-width:140px;}

/* vertical-align */
.left-0{padding-left:0;margin-left:0;}
.top-0{margin-top:0;}

/* Menu */
.navbar-dark .navbar-nav .nav-link,.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-toggler, div.nav-item a.nav-link {
	color: #fff;
	white-space: nowrap;
}
.navbar-nav li:hover>.dropdown-menu {
  display: block;
}

.navbar-brand-logo
{
	padding-top:0px;
	padding-bottom:0px;
}
.logo {
	max-height:35px;
}
.dropdown-menu {
}
#planningDateSelectorDropdown {
	width: 470px;
}
.modal {
  overflow: auto;
}

.modal-body {
  overflow: visible;

}
.myPosition {
    position: fixed;
}
/* Buttons */

div.btn-group
{
	margin-right:5px;
}
.btn
{
	font-size:.90rem;
}

/* Soplanning Box */
.soplanning-box .inline,.soplanning-box .inline .input-append {
	margin:0;
}

.soplanning-box .inline .input-append input {
	height: 16px;
}

.soplanning-box {
	border-radius: 4px;
	padding: 7px;
}

.soplanning-box form {
	margin:0;
}

/* Modal Box */
.modal-dialog-normal{
	max-width:610px;
}

.modalBig {
	max-width: 960px;
	height:auto;

}

.modal-tutoriel{
	max-width:690px;
}

.modal-backdrop,.modal-backdrop.fade.in {
	opacity: .5;
}

.modal-header {
	cursor: move;
	border-bottom-color: #EEEEEE;
	background-color: #FAFAFA;
}

.modal-header h5 {
	font-weight:700;
}

/* Tooltip */
.tooltip-inner {
	max-width: 300px !important;
	padding: 6px 8px;
	background-color:#FAFAF7 !important;
	color: #000;
	text-align: left !important;
	background-color: #000;
	border-radius: .25rem;
	opacity:1;
	border:1px solid silver;
}

.tooltip.show {
  opacity: 1 !important;
}
.picto-link
{
position: absolute;right:-5px;top:12px;color:#000;font-size:9px
}
.picto-comment
{
position: absolute;right:5px;top:12px;color:#000;font-size:9px;
}

/* Badge commentaire */
.comment-badge {
    position: absolute;
    right: 0;
    top: 0;
    transform: translate(50%, -50%);
    color: #fff;
    background-color: #f59e0b;
    font-size: 8px;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 1px 3px rgba(0,0,0,0.3);
    z-index: 1000;
    cursor: help;
    pointer-events: auto;
}

.comment-badge:hover {
    transform: translate(50%, -50%) scale(1.2);
}

/* Badge commentaire - Mode large */
.task-badge-comment {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 18px;
    height: 18px;
    background-color: #f59e0b;
    color: #fff;
    border-radius: 4px;
    font-size: 9px;
    margin-left: 4px;
    vertical-align: middle;
    padding: 0 3px;
}

.task-badge-comment:hover {
    background-color: #d97706;
    transform: scale(1.05);
}

.task-badge-comment i {
    font-size: 10px;
}

/* Adaptation pour fonds sombres */
.cellProject[style*="color:#fff"] .comment-badge,
.cellProject[style*="color: #fff"] .comment-badge,
.cellProject[style*="color:rgb(255"] .comment-badge {
    color: #fbbf24;
    text-shadow: 0 0 3px rgba(0,0,0,0.6);
}

.badge-linked
{
	position: absolute;
	top: -2px;
	right: -2px;
	background: #5c6bc0;
	color: #fff;
	border-radius: 50%;
	width: 14px;
	height: 14px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 7px;
	box-shadow: 0 1px 2px rgba(0,0,0,0.3);
	z-index: 10;
}
.picto-milestone-reduit
{
	position:absolute;
	right:5%;
	top:1px;
	height:12px;
}
.picto-milestone-large
{
	position:absolute;
	right:5%;
	top:1px;
}
/* Pagination */
.pagination {
	margin: 4px 5px 0px 0px;
	position: relative;
	display: inline-block;
	white-space: nowrap;
	vertical-align: middle;
}

.pagination ul > li > a,
.pagination ul > li > span {
  float: left;
  padding: 2px 12px;
  line-height: 20px;
  text-decoration: none;
  background-color: #fff;
  border: 1px solid #ddd;
  border-left-width: 0;
}

/* Cursor */
.cursor-help
{
	cursor:help;
}
.cursor-pointer
{
	cursor:pointer;
}

/* Planning */
.planning_head_day
{
	min-width:25px;
}
.planning-filter
{
	margin:10px;
}
.planning-filter td {
   padding-right:20px;
}
.planning-dateselector
{
	 margin-left:10px;
}
.planning_user_table
{
	border:0;
	padding:2px;
}
.planning_user_table td
{
	white-space: normal;
}
/* Permettre au badge commentaire de deborder des cellules */
/* IMPORTANT: border-collapse: separate est necessaire pour que overflow fonctionne sur les tables */
.planningContent,
.planningContent table {
	border-collapse: separate !important;
	border-spacing: 0;
}
.planningContent td.week,
.planningContent td.weekend,
.planningContent td,
.planningContent tr {
	overflow: visible !important;
}

.cellProject,.cellProjectBiseau1,.cellProjectBiseau2 {
	min-height: 14px;
	padding-left:3px;
	padding-right:3px;
	box-shadow: 1px 1px 5px silver;
	overflow: visible;
	position: relative;
}

/* Icône type maintenance dans les badges */
.task-type-icon {
	display: inline-block;
	font-size: 10px;
	margin-right: 3px;
	opacity: 0.85;
	vertical-align: middle;
}

.task-type-icon.fa {
	font-size: 9px;
}

/* Mode réduit - point coloré seulement */
.cellProject .type-dot {
	display: inline-block;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	margin-right: 3px;
	vertical-align: middle;
	box-shadow: 0 1px 2px rgba(0,0,0,0.2);
}

/* === Mode Large Notion - Structure 3 lignes === */

/* Ligne 1: Header avec badges + code */
.task-header-large {
	display: flex;
	align-items: center;
	gap: 4px;
	flex-wrap: nowrap;
	overflow: hidden;
	margin-bottom: 2px;
	width: 100%;
	max-width: 100%;
}

/* Badges type/sous-type */
.task-badge {
	display: inline-flex;
	align-items: center;
	gap: 2px;
	padding: 1px 5px;
	font-size: 9px;
	font-weight: 600;
	border-radius: 3px;
	white-space: nowrap;
	text-transform: uppercase;
	letter-spacing: 0.3px;
	flex-shrink: 0;
}

.task-badge .task-type-icon {
	font-size: 8px;
	margin-right: 1px;
}

.task-badge-type {
	background: rgba(0,0,0,0.1);
}

.task-badge-subtype {
	background: rgba(0,0,0,0.08);
	font-size: 8px;
	padding: 1px 4px;
}

/* Code de la tâche */
.task-code-large {
	font-weight: 600;
	font-size: 11px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	flex-shrink: 1;
	min-width: 0;
}

/* Ligne 3: Heures + Durée + Jauge */
.task-time-range {
	font-size: 9px;
	opacity: 0.85;
	white-space: nowrap;
}

.task-time-range .fa {
	font-size: 8px;
	margin-right: 2px;
	opacity: 0.7;
}

.task-duration {
	font-size: 9px;
	opacity: 0.7;
	white-space: nowrap;
}

/* Jauge moderne CSS */
.task-gauge-container {
	display: inline-block;
	width: 35px;
	height: 5px;
	background: rgba(0,0,0,0.1);
	border-radius: 3px;
	overflow: hidden;
	vertical-align: middle;
}

.task-gauge {
	display: block;
	width: var(--charge, 0%);
	height: 100%;
	background: linear-gradient(90deg, #4ecdc4 0%, #2ecc71 50%, #f39c12 80%, #e74c3c 100%);
	background-size: 200% 100%;
	border-radius: 3px;
	transition: width 0.3s ease;
}

/* Couleur de la jauge selon le pourcentage */
.task-gauge-container[data-charge="low"] .task-gauge {
	background: #4ecdc4;
}
.task-gauge-container[data-charge="medium"] .task-gauge {
	background: #f39c12;
}
.task-gauge-container[data-charge="high"] .task-gauge {
	background: #e74c3c;
}

.planningFirstCol
{
	top: auto;
	width: 120px;
	padding-right: 24px;
	text-align:left !important;
}
.cellHolidays {
	min-width: 25px;
	min-height: 14px;
	padding-left:3px;
	padding-right:3px;
	box-shadow: 1px 1px 5px silver;
}
.cellEmpty {
	height:18px;
	padding:0;
	margin:0;
	margin-top:1px;
	font-size:0;
	box-shadow: none;
}
.cellEmptyLarge {
	height: 28px !important;
}
.sumCell
{
	text-align:center;
	vertical-align: middle;
}
.sumLargeCell
{
float:left;
width:100%;
height:100%;
text-align:center;
vertical-align: middle;
}

.miniCode {
	margin-left:2px;
	vertical-align:middle;
}

.largeCode {
	font-weight:700;
	white-space: nowrap;
	text-overflow: ellipsis;
}

/* Titre multi-lignes optimisé pour mode large */
.task-title-multiline {
	white-space: normal !important;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	text-overflow: ellipsis;
	line-height: 1.25;
	max-height: 2.5em; /* 2 lignes x 1.25 line-height */
	font-size: 11px;
	font-weight: 500;
	width: 100%;
	word-break: break-word;
	/* Police condensée pour plus de caractères */
	font-family: ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
	font-stretch: semi-condensed;
	letter-spacing: -0.2px;
}
.startDateCell
{
	font-size: 10px;
	opacity: 0.8;
}
.percentCell
{
	font-size: 10px;
	opacity: 0.7;
	margin-left: auto;
}
.codesProjets {
	height: 30px;
	width: 140px;
}

.cellLigneHeureEtCharge {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	min-height: 12px;
	margin-top: 2px;
}

.planningContent {
/*width:100vw;*/}
.planningContent td {
	min-width: 25px;
	min-height: 20px;
	line-height: 20px;
}

.planningTabName {
	white-space: normal;
	width:400px;
}
.planningTabTask {
	white-space: normal;
}

/* infosVersion */
#infosVersion ul {
	margin-left: 0;
	list-style: none;
}

/* planning */
#divPlanning
{
	/*margin-top:165px;*/
}

#divProjectTable
{
	margin-top:5px;
	border:0;
	padding: 2px;
}
#divProjectTable thead
{
	background-color:#fff;
}

#divChoixDragNDrop
{
	background-color: #fff;
	position: absolute;
	z-index: 100;
	display: none;
	padding: 0;
	min-width: 280px;
	max-width: 320px;
	border-radius: 12px;
	box-shadow: 0 10px 40px rgba(0, 0, 0, 0.15), 0 2px 10px rgba(0, 0, 0, 0.1);
	border: 1px solid rgba(0, 0, 0, 0.08);
	overflow: hidden;
	animation: popupFadeIn 0.2s ease-out;
}

@keyframes popupFadeIn {
	from {
		opacity: 0;
		transform: translateY(-10px) scale(0.95);
	}
	to {
		opacity: 1;
		transform: translateY(0) scale(1);
	}
}

#divChoixDragNDrop .popup-header {
	background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
	color: #fff;
	padding: 8px 12px;
	font-size: 12px;
	font-weight: 600;
	display: flex;
	align-items: center;
	gap: 6px;
}

#divChoixDragNDrop .popup-header i {
	font-size: 12px;
}

#divChoixDragNDrop .popup-body {
	padding: 8px 12px;
}

/* Section choix demi-journée modernisée - COMPACT */
#divChoixDragNDrop #halfday_choice_section {
	padding: 8px 12px !important;
	border-bottom: 1px solid #f0f0f0 !important;
	margin-bottom: 0 !important;
	background: #fafafa;
}

#divChoixDragNDrop #halfday_choice_section .section-label {
	font-size: 10px;
	color: #666;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	margin-bottom: 6px;
	font-weight: 500;
}

#divChoixDragNDrop .halfday-toggle-group {
	display: flex;
	gap: 6px;
	width: 100%;
}

#divChoixDragNDrop .halfday-toggle {
	flex: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 4px;
	padding: 6px 8px;
	border: 2px solid #e0e0e0;
	border-radius: 6px;
	cursor: pointer;
	transition: all 0.2s ease;
	background: #fff;
	font-size: 12px;
	font-weight: 500;
	color: #555;
}

#divChoixDragNDrop .halfday-toggle:hover {
	border-color: #667eea;
	background: #f8f9ff;
}

#divChoixDragNDrop .halfday-toggle.active {
	border-color: #667eea;
	background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
	color: #fff;
}

#divChoixDragNDrop .halfday-toggle.active i {
	color: #fff;
}

#divChoixDragNDrop .halfday-toggle i.fa-sun {
	color: #f9a825;
}

#divChoixDragNDrop .halfday-toggle i.fa-moon {
	color: #5c6bc0;
}

#divChoixDragNDrop .halfday-toggle input[type="radio"] {
	display: none;
}

/* Actions modernisées - COMPACT */
#divChoixDragNDrop .popup-actions {
	padding: 6px;
}

#divChoixDragNDrop .popup-actions a {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 7px 10px;
	margin: 1px 0;
	border-radius: 6px;
	text-decoration: none;
	color: #444;
	font-size: 12px;
	transition: all 0.15s ease;
}

#divChoixDragNDrop .popup-actions a:hover {
	background: #f5f5f5;
	color: #333;
}

#divChoixDragNDrop .popup-actions a i {
	width: 18px;
	text-align: center;
	font-size: 14px;
	color: #888;
}

#divChoixDragNDrop .popup-actions a:hover i {
	color: #667eea;
}

#divChoixDragNDrop .popup-actions a.action-primary {
	background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
	color: #fff;
	font-weight: 500;
}

#divChoixDragNDrop .popup-actions a.action-primary i {
	color: #fff;
}

#divChoixDragNDrop .popup-actions a.action-primary:hover {
	box-shadow: 0 4px 12px rgba(102, 126, 234, 0.4);
	transform: translateY(-1px);
}

#divChoixDragNDrop .popup-actions a.action-cancel {
	color: #999;
	font-size: 11px;
	justify-content: center;
	margin-top: 2px;
	padding: 5px;
}

#divChoixDragNDrop .popup-actions a.action-cancel:hover {
	color: #d32f2f;
	background: #ffebee;
}

#divChoixDragNDrop .popup-actions .action-divider {
	height: 1px;
	background: #f0f0f0;
	margin: 3px 4px;
}

#divChoixDragNDrop .popup-actions .help-icon {
	margin-left: auto;
	color: #bbb;
	font-size: 12px;
}

#divChoixDragNDrop .popup-actions a:hover .help-icon {
	color: #888;
}

/* ===========================================
   FORMULAIRE TÂCHE - Toggles Horaire Modernes
   =========================================== */

.schedule-toggle-group {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
}

.schedule-toggle {
	flex: 1;
	min-width: 100px;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	padding: 10px 14px;
	border: 2px solid #e0e0e0;
	border-radius: 8px;
	cursor: pointer;
	transition: all 0.2s ease;
	background: #fff;
	font-size: 13px;
	font-weight: 500;
	color: #555;
	user-select: none;
}

.schedule-toggle:hover {
	border-color: #667eea;
	background: #f8f9ff;
}

.schedule-toggle.active {
	border-color: #667eea;
	background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
	color: #fff;
}

.schedule-toggle.active i {
	color: #fff !important;
}

.schedule-toggle input[type="radio"] {
	display: none;
}

/* Couleurs spécifiques par type */
.schedule-toggle i.fa-calendar {
	color: #4caf50;
}

.schedule-toggle i.fa-sun-o {
	color: #f9a825;
}

.schedule-toggle i.fa-moon-o {
	color: #5c6bc0;
}

.schedule-toggle i.fa-clock-o {
	color: #667eea;
}

/* Variantes de couleur quand actif */
.schedule-toggle.schedule-fullday.active {
	background: linear-gradient(135deg, #4caf50 0%, #45a049 100%);
	border-color: #4caf50;
}

.schedule-toggle.schedule-am.active {
	background: linear-gradient(135deg, #f9a825 0%, #f57c00 100%);
	border-color: #f9a825;
}

.schedule-toggle.schedule-pm.active {
	background: linear-gradient(135deg, #5c6bc0 0%, #3f51b5 100%);
	border-color: #5c6bc0;
}

.schedule-toggle.schedule-custom.active {
	background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
	border-color: #667eea;
}

/* Section horaires personnalisés */
.schedule-custom-section {
	margin-top: 12px;
	padding: 12px 16px;
	background: #f8f9fa;
	border-radius: 8px;
	border-left: 3px solid #667eea;
}

.schedule-custom-section .custom-duration-row {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 10px;
	flex-wrap: wrap;
}

.schedule-custom-section .custom-duration-row:last-child {
	margin-bottom: 0;
}

.schedule-custom-section label.duration-label {
	font-size: 12px;
	color: #666;
	white-space: nowrap;
	margin: 0;
}

.schedule-custom-section input[type="time"] {
	width: auto;
	min-width: 110px;
}

.schedule-custom-section .separator-text {
	color: #999;
	font-size: 12px;
}

/* Version compacte des toggles */
.schedule-toggle-group-sm .schedule-toggle {
	padding: 8px 12px;
	font-size: 12px;
	min-width: 80px;
}

.schedule-toggle-group-sm .schedule-toggle i {
	font-size: 14px;
}

/* Support checkbox dans les toggles */
.schedule-toggle input[type="checkbox"] {
	display: none;
}

/* Responsive */
@media (max-width: 576px) {
	.schedule-toggle-group {
		flex-direction: column;
	}

	.schedule-toggle {
		min-width: unset;
	}

	.schedule-custom-section .custom-duration-row {
		flex-direction: column;
		align-items: flex-start;
	}
}

td.planningDropdownFilter label.checkbox
{
	padding-bottom:0;
	padding-top:0;
	margin-top:0;
	margin-bottom:0;
	min-height:20px;
	cursor:pointer;
	display:block;
}

td.planningDropdownFilter div.form-horizontal
{
	margin-left:5px;
	padding-left:0;
}

.taskDivComment
{
	border-radius:10px;
	padding:5px;
	margin-bottom:5px;
	cursor: pointer;
}
.taskDivComment:hover
{
	cursor: pointer;
}

#date_debut_affiche {
	height:25px;
}
#date_fin_affiche {
	height:25px;
}
#date_debut_custom
{
	margin-top:5px;
	width:105px;
	height:23px;
	font-size:11px;
	vertical-align:top;
	padding:0
}

#date_fin_custom
{
	margin-top:5px;
	width:105px;
	height:23px;
	font-size:11px;
	vertical-align:top;
	padding:0
}

/* Form */
.form-control.datepicker
{
	 width:103px;
}

.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default
{
	text-align:center;
}
.alert li {
	list-style-type:disc;
	margin-left:15px;
}
.soplanning_install_title
{
font-size:30px;font-weight:700;
}
.soplanning_index_title1
{
font-size:23px;font-weight:700;
}
.soplanning_index_title2
{
font-size:30px;font-weight:700;
}

#dateFilterButton{height:30px;}
#projectListLabel{display:table-cell;margin-right:5px;}
#projectListLabel label{margin-right:5px;}
#projectListButton{display:table-cell;}
#projectStatusLabel{display:table-cell;}
#projectStatusLabel label{margin-right:5px;}
#projectStatusCheckbox{display:table-cell;}
#taskListLabel{display:table-cell;padding-right:10px;}
#taskDateSelect{display:table-cell;}
#taskDateSelect tr{height:15px;}
#taskDateSelectLabel{min-width:90px;display: table-cell;padding-right:10px;}
#taskListFiltreLabel{min-width:105px;display: table-cell;padding-right:10px;}
#taskListGroupeLabel{min-width:90px;display: table-cell;padding-right:10px;}
#taskDateSelectStart{display:inline-block;}
#taskDateSelectEnd{display:inline-block;}
#taskDateSelectButton{display: inline-block;}
#taskListButton{display:table-cell;}
#taskListFiltreButton{display:table-cell;}
#taskListGroupeButton{display:table-cell;width: 300px;}
#taskStatusLabel{display:table-cell;}
#taskStatusLabel label{margin-right:5px;min-width: 140px;}
#taskStatusCheckbox{display:table-cell;}
#taskNbMonth{display:table-cell;}
#taskFromDate{display:table-cell;}
#taskFromDate label{margin-right:5px;margin-left:5px;}
#taskToDate{display:table-cell;}

.tooltip-html{display:none;}

.input-withicon{width:96%}
#periodForm .container-fluid {padding-right:0;}
.tab-periode{min-height:150px}
.userTabColRights{white-space:normal;}

.titrePage {
	font-size:19px;
	font-weight:700;
}

.ms-drop{width:400px;}
.ms-options{
min-width:400px;
border: 1px solid rgba(0,0,0,.15) !important;
border-radius: .25rem;
padding-left: .2rem;
padding-right: .2rem;
}

.pastille-statut {
width: 15px;
height: 15px;
border-radius: 50px;
box-shadow: 1px 1px 5px silver;
}

.pastille-projet, .pastille-user {
padding:5px;
border-radius:6px;
box-shadow: 1px 1px 5px silver;
}

.progress {
	width:100px;
	overflow: hidden;
	height: 21px;
	margin-bottom: 5px;
	background-color: #ebebeb;
	border-radius: 4px;
	box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
}

/* Jauges */

@-o-keyframes highlightRouge {
 	0% {
 		background: none
 	}50% {
 		background: #f91919;
 	}100% {
 		background: none;
 	} 		
}
@-moz-keyframes highlightRouge {
 	0% {
 		background: none
 	}50% {
 		background: #f91919;
 	}100% {
 		background: none;
 	} 		
}
@keyframes highlightRouge {
 	0% {
 		background: none
 	}50% {
 		background: #f91919;
 	}100% {
 		background: none;
 	} 		
}


@-o-keyframes highlightVert {
 	0% {
 		background: none
 	}50% {
 		background: #2ded2d;
 	}100% {
 		background: none;
 	} 		
}
@-moz-keyframes highlightVert {
 	0% {
 		background: none
 	}50% {
 		background: #2ded2d;
 	}100% {
 		background: none;
 	} 		
}
@keyframes highlightVert {
 	0% {
 		background: none
 	}50% {
 		background: #2ded2d;
 	}100% {
 		background: none;
 	} 		
}

.jaugeTD{
	position: relative;
	width: 100%;
	height: 100%;
	min-height:20px;
}
.jaugeTDReduit{
	position: relative;
	top: -20px;
	left: -35px;
	width: 100%;
	height: 100%;
}
.jauge0 {
	font-size: 7px;
	font-weight:700;
	color: #000;
	text-indent: -1px;
	position: absolute;
	right: 1px;
	top: 1px;
	width: 10px;
	height: 100%;
	text-align: center;
	line-height:100%;
	background-color: #e5e5e5;
	border: 1px solid #fff;
}
.jauge1 {
	position: absolute;
	bottom:0;
	width: 10%;
	height: 1px;
	background-color: #f91919;

}
.jauge2 {
	position: absolute;
	bottom:0;
	width: 10px;
	height: 20%;
	background-color: #f91919;

}
.jauge3 {
	position: absolute;
	bottom:0;
	width: 10px;
	height: 30%;
	background-color: #f91919;

}
.jauge4 {
	position: absolute;
	bottom:0;
	width: 10px;
	height: 40%;
	background-color: #f96019;

}
.jauge5 {
	position: absolute;
	bottom:0;
	width: 10px;
	height: 50%;
	background-color: #ff8513;

}
.jauge6 {
	position: absolute;
	bottom:0;
	width: 10px;
	height: 60%;
	background-color: #ffbc05;

}
.jauge7 {
	position: absolute;
	bottom:0;
	width: 10px;
	height: 70%;
	background-color: #ded300;

}
.jauge8 {
	position: absolute;
	bottom:0;
	width: 10px;
	height: 80%;
	background-color: #b8d300;

}
.jauge9 {
	position: absolute;
	bottom:0;
	width: 10px;
	height: 90%;
	animation: highlightVert 1s infinite;
	animation-timing-function: ease-in-out;
}

.jauge10 {
	position: absolute;
	bottom:0;
	width: 10px;
	height: 100%;
	background-color: #2ded2d;

}
.jauge11 {
	position: absolute;
	bottom:0;
	width: 10px;
	height: 100%;
	animation: highlightRouge 1s infinite;
	animation-timing-function: ease-in-out;
}
.backgroundRouge{
	background-color: #f91919;
}

.form-group {
	margin-bottom: .5rem;
}
#top-scroll{height: 20px;width:1200px;overflow-x: scroll; overflow-y:hidden;display:none; }
#top-scroll-inner {height: 20px;}
#right-scroll{right:4vmax;position:fixed;top:50vh;display:none;z-index:900}
#left-scroll{left:4vw;position:fixed;top:50vh;display:none;z-index:900}
#left-button,#right-button{cursor:pointer;color:gray;}
#FilterToggle1{display:none;}
#tab_audit_valeurs {margin-top:10px; width:100%}
#tab_audit_valeurs table,#tab_audit_valeurs tr, #tab_audit_valeurs td, #tab_audit_valeurs th {border: 1px solid silver; border-collapse: collapse;padding: 5px;white-space: normal; }
#left-scroll i,#right-scroll i {
  font-size: 1.6em;
  width: 1.6em;
  text-align: center;
  line-height: 1.6em;
  background: #212529;
  color: #fff;
  border-radius: 0.8em;
}
.week[drop-active=true]:not(.planning-cell-split) {
  box-shadow: inset 0px 0px 0px 2px red;
}

.hidden {
	display:none
}

.versionNumber {
	font-size: 60%;
}

.btnActionLignePlanning {
	height:15px;
	border:0px;
	padding-top:0px;
	padding-left:6px;
	padding-right:6px;
	padding-bottom:22px;
}

/* Sticky Planning Header */
#planning_header_month th
{
 position: sticky;
 position: -webkit-sticky;
 top:165px;
 z-index: 12;
}

#planning_header_week_hour th
{
 position: sticky;
 position: -webkit-sticky;
 top:165px;
 z-index: 12;
}

#planning_header_week th
{
 position: sticky;
 position: -webkit-sticky;
 top:189px;
 z-index: 12;
}

#planning_header_hour th
{
 position: sticky;
 position: -webkit-sticky;
 top:190px;
 z-index: 12;
}

#planning_header_dayname th
{
 position: sticky;
 position: -webkit-sticky;
 top:214px;
 z-index: 12;
}

#planning_header_day th
{
 position: sticky;
 position: -webkit-sticky;
 top:237px;
 z-index: 12;
 border-bottom:1px solid white;
}

#divProjectTable th
{
 position: sticky;
 position: -webkit-sticky;
 top:165px;
 z-index: 12;
 border-top:0px;
 background-color:#f9f9f9;
 border-bottom: 2px solid #dee2e6;
}

#taskTab th, #projectTab th, #ProjectListTab th, #userTab th, #teamTab th, #locationTab th, #ressourceTab th, #statusTab th, #FeriesTab th
{
 position: sticky;
 position: -webkit-sticky;
 top:50px;
 z-index: 12;
 border-top:0px;
 background-color:#f9f9f9;
 border-bottom: 2px solid #dee2e6;
}

.planningContent th {
    position: sticky;
    position: -webkit-sticky;
	border-bottom:0px;
    top:0;
	white-space: nowrap;
}

#firstLayer
{
	position: -webkit-sticky;
	top:51px;
	border:4px solid #eeeeee;
	z-index: 105;
	min-width: 540px;
}
#secondLayer
{
	position: -webkit-sticky;
	top:105px;
	border:4px solid #eeeeee;
	border-bottom:9px solid #eeeeee;
	z-index: 100;
	min-width: 540px;
}

#thirdLayer
{
	border: 4px solid #eeeeee;
	min-width: 540px;
	top:160px;
	z-index: 50;
}

/* Barre de navigation rapide par mois */
#monthQuickNav {
	display: none;
	flex-wrap: wrap;
	align-items: center;
}

#monthQuickNav .btn {
	margin-right: 1px;
	margin-bottom: 1px;
}

#btnDisplayOptions {
	margin-left: auto;
}

/* Drag & Drop Menu Items */
.draggable-menu-item {
	padding: 0.5rem 1rem;
	cursor: default;
	transition: background-color 0.15s ease;
	border-left: 3px solid transparent;
}

.draggable-menu-item:hover {
	background-color: #f8f9fa;
}

.draggable-menu-item .drag-handle {
	cursor: grab;
	color: #adb5bd;
	padding: 0.25rem;
	transition: color 0.15s ease;
}

.draggable-menu-item:hover .drag-handle {
	color: #6c757d;
}

.draggable-menu-item .drag-handle:active {
	cursor: grabbing;
}

.draggable-menu-item.dragging {
	opacity: 0.5;
	background-color: #e9ecef;
}

.draggable-menu-item.drag-over {
	border-left: 3px solid #17a2b8;
	background-color: #e3f2fd;
}

.draggable-menu-item a {
	color: #212529;
	text-decoration: none;
}

.draggable-menu-item a:hover {
	text-decoration: none;
}

th[scope=row]
{
	left:0px !important;
	border-left: 0px solid #eeeeee;
	z-index:3;
}

.planning_switch
{
	z-index:20 !important;
}

#tdTotal,#tdTotalTaches
{
	background-color:white;
}

#divMessage{top:56px;}
#filtreTexte{width:110px;height:33px;padding:0px;}
#divRecap{position:relative;border:4px solid #eeeeee;margin-top:160px}

.ellipsis {
    width:225px;
	overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}
#file-select-button {
    cursor: pointer;
}

.container{margin-top:60px;margin-bottom: 40px;}
#divChoixDragNDrop a{
    display:block;
    margin-bottom:10px;
}

#ui-timepicker-div {
  position: absolute !important;
}

#table_restore_result table, #table_restore_result th, #table_restore_result td {
	border: 1px solid black;
	border-collapse: collapse;
	padding: 5px;
}
.restore-OK{ background-color:green;color:white;padding:3px;border-radius:2px;}
.restore-KO{ background-color:red;color:white;padding:3px;border-radius:2px;}

.bordureSelectionne {
	border:2px #ff0000 dotted;
}

/* for modal on right or left side */
.modal.left .modal-dialog,
.modal.right .modal-dialog {
	position: fixed;
	margin: auto;
	width: 400px;
	height: 100%;
	-webkit-transform: translate3d(0%, 0, 0);
		-ms-transform: translate3d(0%, 0, 0);
		 -o-transform: translate3d(0%, 0, 0);
			transform: translate3d(0%, 0, 0);
}

.modal.left .modal-dialog {
	left:0px;
}

.modal.right .modal-dialog {
	right:0px;
}

.modal.left .modal-content,
.modal.right .modal-content {
	height: 100%;
	overflow-y: auto;
}

.modal.left .modal-body,
.modal.right .modal-body {
	padding: 15px 15px 80px;
}

.modal.left.fade .modal-dialog{
	left: 0px;
	-webkit-transition: opacity 0.3s linear, left 0.3s ease-out;
	   -moz-transition: opacity 0.3s linear, left 0.3s ease-out;
		 -o-transition: opacity 0.3s linear, left 0.3s ease-out;
			transition: opacity 0.3s linear, left 0.3s ease-out;
}

.modal.left.fade.in .modal-dialog{
	left: 0;
}
	
.modal.right.fade .modal-dialog {
	right: 0px;
	-webkit-transition: opacity 0.3s linear, right 0.3s ease-out;
	   -moz-transition: opacity 0.3s linear, right 0.3s ease-out;
		 -o-transition: opacity 0.3s linear, right 0.3s ease-out;
			transition: opacity 0.3s linear, right 0.3s ease-out;
}

.modal.right.fade.in .modal-dialog {
	right: 0;
}

/* end for modal */

.dropdown-menu.filtrePlanning {
	max-height: 700px;
	overflow-y: scroll;
}

.tooltip-inner {
    max-width: 500px !important;
}


.colProj1 {
	background-color:#ffffd9;
}
.colProj2 {
	background-color:#d8fcf9;
}

/* Style pour la première colonne du planning (noms des personnes/projets) */
.divpeoplePDF {
	width: 200px !important;
	min-width: 200px !important;
	max-width: 200px !important;
}

/* Responsive actions group for planning filter (mobile <= 750px) */
#btnMoreActionsToggle { display: none; }
#btnLessActionsToggle { display: none; margin-left:5px}
#moreActions { display: inline-block; }
/* Force hide when JS adds .hidden on the opener */
#btnMoreActionsToggle.hidden { display: none; }
@media (max-width: 750px) {
	#btnMoreActionsToggle { display: inline-block; }
	#btnLessActionsToggle { display: inline-block; }
	#moreActions { display: none; width: 100%; }
	#moreActions.show { display: block; width: 100%; }
	/* Ensure .hidden wins over the ID rule on small screens */
	#btnMoreActionsToggle.hidden { display: none; }
	#searchboxPlanning { display:block;}
}
@media (min-width: 751px) {
	#btnMoreActionsToggle { display: none; }
	#btnLessActionsToggle { display: none;}
	#moreActions { display: inline-block; }
}

/* ============================================= */
/* MODERN TASK FORM - Formulaire de tâche v2    */
/* ============================================= */

/* Reset modal padding pour le formulaire moderne */
/* Utilise .modal-task-form-modern ajoute via JS pour compatibilite navigateurs */

/* Modal dialog - responsive avec scrollbar invisible */
#myBigModal.modal-task-form-modern .modal-dialog {
	max-height: 90vh;
	max-height: 90dvh;
	height: auto;
	margin: 5vh auto;
	margin: 5dvh auto;
	display: flex;
	flex-direction: column;
}

#myBigModal.modal-task-form-modern .modal-content {
	border-radius: 12px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	max-height: 90vh;
	max-height: 90dvh;
}

#myBigModal.modal-task-form-modern .modal-body {
	padding: 0;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	flex: 1;
	min-height: 0;
}

.task-form-modern {
	font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
	background: #fff;
	border-radius: 12px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	flex: 1;
	min-height: 0;
}

/* Le form doit aussi etre un flex container */
.task-form-modern > form {
	display: flex;
	flex-direction: column;
	flex: 1;
	min-height: 0;
	overflow: hidden;
}

/* Header avec gradient - Compact */
.task-form-header {
	background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
	color: #fff;
	padding: 8px 14px;
	display: flex;
	align-items: center;
	gap: 10px;
	flex-shrink: 0;
}

.task-form-header .header-icon {
	width: 30px;
	height: 30px;
	background: rgba(255,255,255,0.2);
	border-radius: 6px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 14px;
}

.task-form-header .header-text h4 {
	margin: 0;
	font-size: 14px;
	font-weight: 600;
}

/* Body - Scrollable avec scrollbar invisible */
.task-form-body {
	padding: 10px 14px;
	flex: 1;
	overflow-y: auto;
	overflow-x: hidden;
	min-height: 0;
	/* Smooth scroll sur iOS/mobile */
	-webkit-overflow-scrolling: touch;
	/* Scrollbar invisible - Firefox */
	scrollbar-width: none;
	/* Scrollbar invisible - IE/Edge */
	-ms-overflow-style: none;
}

/* Scrollbar invisible - Chrome/Safari/Opera */
.task-form-body::-webkit-scrollbar {
	display: none;
	width: 0;
	height: 0;
}

/* Sections - Compact */
.form-section {
	margin-bottom: 8px;
}

/* Titre principal - Grande priorité */
.form-section-title .task-title-input {
	width: 100%;
	border: 2px solid #e2e8f0;
	border-radius: 8px;
	padding: 10px 12px;
	font-size: 15px;
	font-weight: 500;
	transition: all 0.2s ease;
}

.form-section-title .task-title-input:focus {
	border-color: #667eea;
	box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.15);
	outline: none;
}

.form-section-title .task-title-input::placeholder {
	color: #a0aec0;
}

/* Grid layout pour 2 colonnes */
.form-row-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
}

@media (max-width: 600px) {
	.form-row-grid {
		grid-template-columns: 1fr;
		gap: 10px;
	}
}

/* Form field */
.form-field {
	display: flex;
	flex-direction: column;
}

.field-label {
	font-size: 12px;
	font-weight: 600;
	color: #4a5568;
	margin-bottom: 4px;
	display: flex;
	align-items: center;
	gap: 5px;
}

.field-label i {
	color: #667eea;
	font-size: 12px;
}

.field-label-sm {
	font-size: 11px;
	font-weight: 500;
	color: #718096;
	margin-bottom: 3px;
}

/* Section header */
.section-header {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 12px;
	font-weight: 600;
	color: #4a5568;
	margin-bottom: 8px;
	padding-bottom: 6px;
	border-bottom: 1px solid #e2e8f0;
}

.section-header i {
	color: #667eea;
	font-size: 12px;
}

/* Schedule section */
.form-section-schedule {
	background: #f8fafc;
	border-radius: 10px;
	padding: 12px;
	border: 1px solid #e2e8f0;
}

.schedule-main-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px;
	margin-bottom: 10px;
}

.schedule-type-row {
	margin-bottom: 0;
}

.date-field {
	min-width: 0;
}

/* Schedule toggle group - Les 4 boutons en grille 2x2 */
.schedule-toggle-group {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 6px;
}

.schedule-toggle {
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: center;
	gap: 4px;
	padding: 8px 6px;
	border: 2px solid #e2e8f0;
	border-radius: 8px;
	background: #fff;
	cursor: pointer;
	transition: all 0.15s ease;
	font-size: 10px;
	font-weight: 500;
	color: #718096;
}

.schedule-toggle input[type="radio"] {
	display: none;
}

.schedule-toggle i {
	font-size: 12px;
}

.schedule-toggle:hover {
	border-color: #a0aec0;
	background: #f7fafc;
}

/* Schedule toggle active states */
.schedule-toggle.active.schedule-fullday {
	border-color: #48bb78;
	background: linear-gradient(135deg, #48bb78 0%, #38a169 100%);
	color: #fff;
}

.schedule-toggle.active.schedule-am {
	border-color: #ed8936;
	background: linear-gradient(135deg, #ed8936 0%, #dd6b20 100%);
	color: #fff;
}

.schedule-toggle.active.schedule-pm {
	border-color: #4299e1;
	background: linear-gradient(135deg, #4299e1 0%, #3182ce 100%);
	color: #fff;
}

.schedule-toggle.active.schedule-custom {
	border-color: #9f7aea;
	background: linear-gradient(135deg, #9f7aea 0%, #805ad5 100%);
	color: #fff;
}

/* Schedule end row */
.schedule-end-row {
	margin-top: 16px;
	padding-top: 16px;
	border-top: 1px dashed #e2e8f0;
	display: flex;
	gap: 16px;
	align-items: flex-start;
	flex-wrap: wrap;
}

/* End type toggle */
.end-type-toggle {
	display: flex;
	gap: 4px;
	background: #e2e8f0;
	border-radius: 8px;
	padding: 3px;
}

.end-toggle {
	padding: 6px 12px;
	border-radius: 6px;
	font-size: 12px;
	font-weight: 500;
	color: #718096;
	cursor: pointer;
	transition: all 0.2s ease;
}

.end-toggle input[type="radio"] {
	display: none;
}

.end-toggle.active {
	background: #fff;
	color: #4a5568;
	box-shadow: 0 1px 3px rgba(0,0,0,0.1);
}

.end-date-field {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
}

.field-hint {
	font-size: 12px;
	color: #a0aec0;
}

.nb-days-input {
	width: 70px !important;
}

.preserve-duration {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 12px;
	color: #718096;
	cursor: pointer;
}

/* Custom schedule panel - Compact */
.schedule-custom-panel {
	margin-top: 8px;
	padding: 8px;
	background: #fff;
	border-radius: 6px;
	border: 1px solid #e2e8f0;
}

.custom-row {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
	margin-bottom: 8px;
}

.custom-row:last-child {
	margin-bottom: 0;
}

.custom-separator {
	font-size: 12px;
	color: #a0aec0;
	font-weight: 500;
}

.time-range {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-direction: row !important;
}

.time-arrow {
	color: #667eea;
	font-weight: bold;
}

.halfday-toggles {
	display: flex;
	gap: 8px;
}

.halfday-check {
	display: flex;
	align-items: center;
	gap: 6px;
	padding: 6px 12px;
	border: 1px solid #e2e8f0;
	border-radius: 6px;
	font-size: 12px;
	color: #718096;
	cursor: pointer;
	transition: all 0.2s ease;
}

.halfday-check input {
	display: none;
}

.halfday-check.active,
.halfday-check:has(input:checked) {
	background: #667eea;
	border-color: #667eea;
	color: #fff;
}

/* ===== ACCORDIONS - Compact ===== */
.task-form-accordions {
	margin-top: 6px;
}

.accordion-section {
	border: 1px solid #e2e8f0;
	border-radius: 6px;
	margin-bottom: 4px;
	overflow: hidden;
}

.accordion-header {
	width: 100%;
	display: flex;
	align-items: center;
	gap: 6px;
	padding: 6px 10px;
	background: #f8fafc;
	border: none;
	cursor: pointer;
	font-size: 12px;
	font-weight: 600;
	color: #4a5568;
	text-align: left;
	transition: background 0.15s ease;
}

.accordion-header:hover {
	background: #edf2f7;
}

.accordion-header .section-icon {
	color: #667eea;
	font-size: 13px;
}

.accordion-header span {
	flex: 1;
}

.accordion-arrow {
	color: #a0aec0;
	font-size: 10px;
	transition: transform 0.2s ease;
}

.accordion-arrow.rotated {
	transform: rotate(180deg);
}

.accordion-content {
	max-height: 0;
	overflow: hidden;
	transition: max-height 0.25s ease;
	padding: 0 12px;
	background: #fff;
}

.accordion-content.show {
	max-height: 2000px; /* Grande valeur pour permettre l'expansion complete */
	padding: 10px 12px;
	overflow: visible; /* Pas de scrollbar */
}

/* Repetition options */
.repetition-options {
	margin-top: 8px;
	padding: 8px;
	background: #f8fafc;
	border-radius: 6px;
	display: flex;
	align-items: center;
	gap: 6px;
	flex-wrap: wrap;
	font-size: 12px;
}

.repetition-options .form-control-sm {
	width: auto;
	display: inline-block;
}

.weekday-toggles {
	display: flex;
	gap: 3px;
	flex-wrap: wrap;
}

.weekday-toggle {
	width: 28px;
	height: 28px;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 1px solid #e2e8f0;
	border-radius: 50%;
	font-size: 10px;
	font-weight: 600;
	color: #718096;
	cursor: pointer;
	transition: all 0.15s ease;
}

.weekday-toggle input {
	display: none;
}

.weekday-toggle:has(input:checked) {
	background: #667eea;
	border-color: #667eea;
	color: #fff;
}

.exception-options {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.radio-option {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 13px;
	color: #4a5568;
	cursor: pointer;
}

.recurrence-info {
	margin-top: 12px;
	padding: 12px;
	background: #ebf8ff;
	border-radius: 8px;
	border-left: 4px solid #4299e1;
	font-size: 13px;
	color: #2b6cb0;
}

.recurrence-info i {
	margin-right: 6px;
}

.apply-all-check {
	display: flex;
	align-items: center;
	gap: 6px;
	margin-top: 8px;
	font-size: 12px;
	cursor: pointer;
}

/* Input with button */
.input-with-button {
	display: flex;
	gap: 8px;
}

.input-with-button .form-control {
	flex: 1;
}

/* File upload */
.file-upload-zone {
	padding: 12px;
	background: #f8fafc;
	border: 2px dashed #e2e8f0;
	border-radius: 8px;
}

.files-list {
	margin-top: 10px;
}

.file-item {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 8px 12px;
	background: #fff;
	border: 1px solid #e2e8f0;
	border-radius: 6px;
	margin-bottom: 6px;
}

.file-link {
	color: #4a5568;
	text-decoration: none;
	font-size: 13px;
}

.file-link:hover {
	color: #667eea;
}

.file-remove {
	color: #e53e3e;
	cursor: pointer;
	transition: color 0.2s ease;
}

.file-remove:hover {
	color: #c53030;
}

/* ===== FOOTER - Compact ===== */
.task-form-footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 8px 14px;
	background: #f8fafc;
	border-top: 1px solid #e2e8f0;
	flex-shrink: 0;
}

.footer-left {
	flex: 1;
}

.notify-check {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 11px;
	color: #718096;
	cursor: pointer;
}

.notify-check i {
	color: #667eea;
	font-size: 12px;
}

.footer-right {
	display: flex;
	align-items: center;
	gap: 10px;
}

.btn-more {
	padding: 8px 12px;
	border-radius: 8px;
}

.btn-save {
	padding: 8px 18px;
	border-radius: 8px;
	font-weight: 600;
	font-size: 12px;
	background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
	border: none;
	display: flex;
	align-items: center;
	gap: 6px;
	transition: all 0.15s ease;
}

.btn-save:hover {
	box-shadow: 0 3px 10px rgba(102, 126, 234, 0.35);
}

/* Utility classes */
.task-form-modern .d-none {
	display: none !important;
}

.task-form-modern .mt-3 {
	margin-top: 16px;
}

/* Form controls dans le contexte moderne */
.task-form-modern .form-control {
	border-radius: 6px;
	border: 1px solid #e2e8f0;
	padding: 6px 10px;
	font-size: 13px;
	transition: border-color 0.15s ease;
}

.task-form-modern .form-control:focus {
	border-color: #667eea;
	box-shadow: 0 0 0 2px rgba(102, 126, 234, 0.12);
	outline: none;
}

.task-form-modern .select2-container--default .select2-selection--single,
.task-form-modern .select2-container--default .select2-selection--multiple {
	border-radius: 6px;
	border-color: #e2e8f0;
	min-height: 32px;
}

/* Responsive - Mobiles */
@media (max-width: 600px) {
	#myBigModal.modal-task-form-modern .modal-dialog {
		height: calc(100vh - 10px);
		max-height: calc(100vh - 10px);
		margin: 5px;
	}

	.task-form-header {
		padding: 10px 12px;
	}

	.task-form-body {
		padding: 10px 12px;
	}

	.schedule-main-row {
		grid-template-columns: 1fr;
	}

	.schedule-toggle-group {
		grid-template-columns: repeat(2, 1fr);
	}

	.schedule-toggle span {
		display: none;
	}

	.schedule-toggle i {
		font-size: 14px;
	}

	.task-form-footer {
		padding: 8px 12px;
	}

	.accordion-content.show {
		max-height: 2000px; /* Meme sur mobile, pas de limite */
	}

	/* Section personnalisee plus compacte sur mobile */
	.schedule-custom-panel {
		padding: 8px;
	}

	.schedule-custom-panel .custom-row {
		gap: 6px;
	}

	.schedule-custom-panel .form-control {
		padding: 4px 8px;
		font-size: 12px;
	}
}

/* Ecrans moyens - tablettes */
@media (min-width: 601px) and (max-width: 900px) {
	.schedule-toggle-group {
		grid-template-columns: repeat(4, 1fr);
	}
}


/* ===========================
   Activity Cells Styling
   =========================== */

/* Base styling for all activity cells */
.cellActivity {
	position: relative;
}

/* Absence activities - distinguished with diagonal stripes */
.cellActivity.activity-absence {
	background-image:
		repeating-linear-gradient(
			45deg,
			transparent,
			transparent 4px,
			rgba(255, 255, 255, 0.15) 4px,
			rgba(255, 255, 255, 0.15) 8px
		) !important;
	background-size: 11px 11px !important;
}

/* Free task activities - slightly transparent */
.cellActivity.activity-freetask {
	opacity: 0.95;
}

/* Hover effects for activities */
.cellActivity:hover {
	box-shadow: 
		inset 0 0 0 2px rgba(0, 0, 0, 0.1),
		0 2px 4px rgba(0, 0, 0, 0.1);
	transform: translateY(-1px);
	transition: all 0.15s ease;
}

/* Activity cells in large mode */
.cellEmptyLarge .cellActivity {
	min-width: 130px;
}

/* Ensure activity text is readable */
.cellActivity {
	font-weight: 500;
}

/* Indicateurs ronds sur activites supprimes - les badges et rayures suffisent */

/* ===== VACANCES SCOLAIRES - En-tête du planning ===== */

#planning_header_vacances {
    height: 22px;
}

/* Cellule avec période de vacances */
.planning_head_vacances {
    background: linear-gradient(135deg, #e3f2fd 0%, #bbdefb 100%);
    border: 1px solid #90caf9;
    text-align: center;
    font-size: 0.75em;
    padding: 2px 5px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.planning_head_vacances .vacances-label {
    color: #1565c0;
    font-weight: 500;
}

/* Cellule vide (jour hors vacances) */
.planning_head_vacances_empty {
    background: transparent;
    border: none;
    border-bottom: 1px solid #ddd;
    height: 22px;
}

/* Variantes par type de vacances */
.planning_head_vacances.vacances-noel {
    background: linear-gradient(135deg, #ffebee 0%, #ffcdd2 100%);
    border-color: #ef9a9a;
}
.planning_head_vacances.vacances-noel .vacances-label {
    color: #c62828;
}

.planning_head_vacances.vacances-toussaint {
    background: linear-gradient(135deg, #fff3e0 0%, #ffe0b2 100%);
    border-color: #ffcc80;
}
.planning_head_vacances.vacances-toussaint .vacances-label {
    color: #e65100;
}

.planning_head_vacances.vacances-hiver {
    background: linear-gradient(135deg, #e1f5fe 0%, #b3e5fc 100%);
    border-color: #81d4fa;
}
.planning_head_vacances.vacances-hiver .vacances-label {
    color: #0277bd;
}

.planning_head_vacances.vacances-printemps {
    background: linear-gradient(135deg, #f3e5f5 0%, #e1bee7 100%);
    border-color: #ce93d8;
}
.planning_head_vacances.vacances-printemps .vacances-label {
    color: #7b1fa2;
}

.planning_head_vacances.vacances-ete {
    background: linear-gradient(135deg, #fff8e1 0%, #ffecb3 100%);
    border-color: #ffe082;
}
.planning_head_vacances.vacances-ete .vacances-label {
    color: #f57f17;
}

/* Mode impression */
@media print {
    #planning_header_vacances {
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }
}
