@charset "utf-8";
/* CSS Document - Modernized */

/* General Table/Form Styles */
table.formulaire,
table.liste {
	width: 100% !important;
	max-width: 100% !important;
	border-collapse: separate;
	border-spacing: 0;
	background: #fff;
	margin-bottom: 0px;
	/* Reduced to join with following table */
	border-radius: 8px;
	overflow: hidden;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
	box-sizing: border-box;
}

/* When a list table immediately follows a search table (formulaire) */
table.formulaire+span+table.liste,
table.formulaire+table.liste,
form+table.liste {
	margin-top: 0 !important;
	border-top: none !important;
	border-radius: 0 0 8px 8px !important;
}

table.formulaire:has(+ span + table.liste),
table.formulaire:has(+ table.liste) {
	margin-bottom: 0 !important;
	border-radius: 8px 8px 0 0 !important;
}

/* Fallback for browsers that don't support :has */
table.formulaire-joined {
	margin-bottom: 0 !important;
	border-radius: 8px 8px 0 0 !important;
}

table.liste-joined {
	margin-top: 0 !important;
	border-top: none !important;
	border-radius: 0 0 8px 8px !important;
}


/* Modern Spacious Add Form */
table.formulaire {
	border: 1px solid #e0e0e0;
	margin-bottom: 25px;
	background: #fff;
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
	border-radius: 8px;
	overflow: hidden;
	border-collapse: separate;
	border-spacing: 0;
	box-sizing: border-box;
	table-layout: fixed;
	/* Force vertical alignment of columns */
}


table.formulaire tr td {
	padding: 8px 10px;
	vertical-align: middle;
	border-bottom: 1px solid #f0f0f0;
	box-sizing: border-box;
	/* Ensure padding doesn't break grid */
}


/* 6-Column Grid Definition */
table.formulaire tr td:nth-child(1),
table.formulaire tr td:nth-child(3),
table.formulaire tr td:nth-child(5) {
	width: 13.33%;
	/* Labels */
}

table.formulaire tr td:nth-child(2),
table.formulaire tr td:nth-child(4),
table.formulaire tr td:nth-child(6) {
	width: 20%;
	/* Inputs */
}

table.formulaire input[type="text"],
table.formulaire input[type="password"],
table.formulaire select {
	width: 100%;
	max-width: 100%;
	/* Fill the grid column */
	box-sizing: border-box;
	height: 32px;
	vertical-align: middle;
}


/* Helper for inline groups like time ranges */
table.formulaire td [style*="display: flex"]>input,
table.formulaire td [style*="display: flex"]>select {
	flex: 1;
	width: auto !important;
	/* Allow flex to take over */
	min-width: 0;
}

.inline-group {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}



/* Compact Search Form */
table.formulaire-compact {
	margin-bottom: 5px !important;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1) !important;
	border: 1px solid #e0e0e0 !important;
	background: #fff !important;
	width: 100%;
	border-collapse: separate !important;
	border-spacing: 0 !important;
	border-radius: 8px !important;
	box-sizing: border-box !important;
}

table.formulaire-compact tr td {
	padding: 3px 6px !important;
	border-bottom: none !important;
}

table.formulaire-compact input[type="text"],
table.formulaire-compact select {
	height: 30px !important;
	padding: 4px 8px !important;
	font-size: 12px !important;
}

/* Headers */
table.formulaire tr th,
table.liste tr th,
.listehead {
	background: #34495e;
	color: #fff;
	padding: 12px 15px;
	text-align: left;
	font-weight: 500;
	font-size: 14px;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	border: none;
	background-image: none !important;
}

/* Header style for Compact Forms (Search) */
table.formulaire-compact tr th {
	background: #34495e;
	/* Match main header */
	color: #fff;
	padding: 8px 10px;
	/* More compact padding */
	text-align: right;
	/* Push buttons to right */
	border-radius: 8px 8px 0 0;
	font-weight: 500;
	font-size: 13px;
	border: none;
}

table.formulaire tr th.az {
	background: #34495e;
	text-align: right;
}

/* Buttons aligned right in Add form header */
table.formulaire tr th {
	text-align: right;
}

table.formulaire tr th input[type="button"],
table.formulaire-compact tr th input[type="button"],
table.formulaire tr th input[type="submit"] {
	/* Apply to all header buttons */
	float: none;
	margin-left: 10px;
	width: auto !important;
}

table.formulaire tr th img,
table.formulaire-compact tr th img {
	/* Apply to both */
	height: 20px;
	width: 20px;
	vertical-align: middle;
	margin-right: 10px;
}

/* Form Cells - Redundant rule removed */


table.formulaire tr td.label {
	background: #fff !important;
	border: none !important;
	font-weight: 600;
	color: #555;
	text-align: right;
	padding-right: 12px;
	/* Proximity to input */
	white-space: nowrap;
	/* Prevent label wrapping */
}

/* List Tables (Data Grids) */
table.liste tr td {
	padding: 10px 12px;
	border-bottom: 1px solid #e9ecef;
	color: #2c3e50;
	/* Darker text */
	font-size: 13px;
	font-weight: normal;
	border-right: none;
	/* Cleaner look */
	border-left: none;
	vertical-align: middle;
}

/* Zebra Striping */
table.liste tr:nth-child(even) {
	background-color: #f8faff;
	/* Subtle blue tint */
}

/* Hover Effect */
table.liste tr:hover {
	background-color: #e3f2fd;
	/* Clearer hover state */
	cursor: default;
}

/* Headers Refinement */
table.liste tr th {
	font-weight: 600;
	letter-spacing: 0.5px;
	border-bottom: 3px solid #3498db;
	/* Accent border */
}

/* Buttons */
input[type=button],
input[type=submit],
button {
	padding: 6px 18px;
	/* Reduced from 10px 20px */
	border: none;
	border-radius: 4px;
	cursor: pointer;
	font-family: inherit;
	font-size: 12px;
	/* Reduced from 13px */
	font-weight: 600;
	text-transform: uppercase;
	transition: all 0.3s ease;
	margin: 4px 2px;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
	background-image: none !important;
	width: auto;
}

input[type=submit] {
	background-color: #27ae60;
	/* Green */
	color: #fff;
}

input[type=submit]:hover {
	background-color: #219150;
	transform: translateY(-1px);
	box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}

input[type=button] {
	background-color: #95a5a6;
	/* Grey */
	color: #fff;
}

input[type=button]:hover {
	background-color: #7f8c8d;
	transform: translateY(-1px);
}

/* Specific button overrides (assuming IDs like button3 for 'Nouveau') */
#button3 {
	background-color: #3498db;
	/* Blue */
}

#button3:hover {
	background-color: #2980b9;
}

#button2 {
	/* Retour often */
	background-color: #7f8c8d;
}

/* Legacy Overrides */
.c2 {
	background: #fff0f0;
	color: #c0392b;
	font-weight: normal;
}

.mnt,
#rr {
	text-decoration: line-through;
	color: #e74c3c;
}

th.tr {
	cursor: pointer;
}

th.tr:hover {
	background-color: #2c3e50;
}

/* Checkboxes */
input[type=checkbox] {
	width: auto;
	margin-right: 5px;
}

/* Typography fix inside tables */
table.liste tr td {
	font-family: inherit;
}

/* ========================================
   ADDITIONAL FORM IMPROVEMENTS
   ======================================== */

/* Select dropdowns in forms */
table.formulaire select {
	padding: 2px 5px !important;
	/* Force compact padding */
	border: 1px solid #ced4da !important;
	border-radius: 4px !important;
	background: #fff !important;
	font-size: 11px !important;
	height: 26px !important;
	/* Match text inputs */
	color: #495057 !important;
	cursor: pointer;
	transition: border-color 0.3s;
}

table.formulaire select:focus {
	border-color: #3498db;
	outline: none;
	box-shadow: 0 0 0 3px rgba(52, 152, 219, 0.15);
}

/* Form labels improvement */
table.formulaire td.label {
	font-weight: 600;
	color: #555;
	font-size: 13px;
	white-space: nowrap;
	padding-right: 15px;
}

/* Search/Filter row styling */
table.formulaire tr:first-child th {
	border-radius: 8px 8px 0 0;
}

/* Consistent input sizing in filter forms */
table.formulaire input[type="text"] {
	padding: 4px 8px !important;
	/* Force reduced padding */
	font-size: 11px !important;
	/* Force smaller font */
	height: 26px !important;
	/* Force reduced height */
	border: 1px solid #ced4da !important;
	border-radius: 4px !important;
	box-shadow: none !important;
	line-height: normal !important;
}

/* Row striping for list tables */
table.liste tbody tr:nth-child(odd) {
	background-color: #fff;
}

table.liste tbody tr:nth-child(even) {
	background-color: #f8f9fa;
}

table.liste tbody tr:hover {
	background-color: #e3f2fd;
}

/* Table header improvements */
table.liste thead tr th,
table.liste tr.listehead td {
	background: linear-gradient(135deg, #34495e 0%, #2c3e50 100%);
	color: #fff;
	font-weight: 600;
	padding: 14px 12px;
	text-transform: uppercase;
	font-size: 13px;
	letter-spacing: 0.5px;
	border: none;
}

/* Row hover with icon images */
table.liste tr td img {
	transition: transform 0.2s;
}

table.liste tr:hover td img {
	transform: scale(1.1);
}

/* Number alignment */
table.liste tr td.nbr {
	text-align: right;
	font-family: 'Roboto Mono', monospace;
	font-size: 13px;
}

/* Action column icons */
table.liste tr td:last-child {
	white-space: nowrap;
}



/* Responsive form container */
@media screen and (max-width: 1200px) {
	table.formulaire {
		width: 100% !important;
	}

	table.formulaire td,
	table.formulaire th {
		display: block;
		width: 100%;
		padding: 8px 15px;
	}

	table.formulaire td.label {
		text-align: left !important;
		padding-bottom: 5px;
	}
}

/* ========================================
   COMPACT TABLE - NO SCROLLBAR
   ======================================== */

/* No scrollbar - all columns visible */
.middle_back {
	overflow-x: auto !important;
	max-width: 100%;
}

/* Ultra compact table styling - ADJUSTED TO 13PX */
table.liste {
	width: 100% !important;
	min-width: auto !important;
	table-layout: auto;
	font-size: 13px !important;
}

table.liste th,
table.liste td {
	white-space: nowrap;
	padding: 4px 5px !important;
	font-size: 13px !important;
	line-height: 1.4;
}

table.liste th {
	padding: 6px 5px !important;
	font-size: 13px !important;
	text-transform: uppercase;
}

/* Allow text wrap for specific columns */
table.liste td:nth-child(2),
table.liste td:nth-child(5) {
	white-space: nowrap;
	max-width: 150px;
	overflow: hidden;
	text-overflow: ellipsis;
}

/* Main content area takes more space */
#cent {
	display: flex !important;
	flex-wrap: nowrap;
	gap: 10px;
}

#st11 {
	flex: 1 !important;
	min-width: 0;
	overflow: visible;
}

/* NARROW RIGHT SIDEBAR */
#st31 {
	width: 200px !important;
	max-width: 200px !important;
	min-width: 180px !important;
	flex-shrink: 0;
}

#st31 .st3 {
	padding: 8px;
}

#st31 .title,
#st31 h2.title {
	font-size: 13px !important;
	padding: 10px 12px !important;
}

#st31 .back {
	padding: 8px;
}

#st31 .back ul li {
	padding: 4px 0;
	font-size: 13px;
}

#st31 .back ul li a {
	font-size: 13px;
}

/* Compact calendar */
.ft {
	font-size: 16px !important;
	margin-bottom: 5px;
}

.calendar_table {
	font-size: 11px !important;
}

.calendar_table td,
.calendar_table th {
	padding: 2px !important;
	font-size: 11px !important;
}

/* Scrollbar styling */
.middle_back::-webkit-scrollbar {
	height: 6px;
}

.middle_back::-webkit-scrollbar-track {
	background: #f1f1f1;
	border-radius: 3px;
}

.middle_back::-webkit-scrollbar-thumb {
	background: #3498db;
	border-radius: 3px;
}

.middle_back::-webkit-scrollbar-thumb:hover {
	background: #2980b9;
}