/* ==============================================//
// Fichier					: n4v_menu.css
// Version 					: 1.8
// Dernière modification 	: 02/07/2024
// ==============================================*/

.info_n4v {
	width: 15px;
	height: 15px;
	top: 0px;
	left: 0px;
	position: fixed;
}

.n4v_menu {
	position: absolute;
	top: 5px;
	right: 5px;
	z-index: 1000;
}
/*
.n4v_menu:focus-within{
	border-style: dotted;
}
*/
.wh24{
	background-color: white;
	background-size: 24px;
	width: 24px !important;
	height: 24px !important;	
}

.wh20{
	width: 20px !important;
	height: 20px !important;	
	background-size: 20px;
}

#n4v_mm_button {
	background-image: url("images/n4v_menu.svg?202615");
	background-color: white;
	width: 24px;
    height: 24px;
	border-radius: 3px;
	transition: transform 0.2s ease, filter 0.2s ease;
}
#n4v_mm_button:hover {
    transform: scale(1.08);
}
#n4v_mf_button {
	background-image: url("images/n4v_menu_filt_on.svg?202615");
	background-color: white;
	width: 24px;
    height: 24px;
	border-radius: 3px;
	transition: transform 0.2s ease, filter 0.2s ease;
}
.dropdown-menu>li>a:hover #n4v_mf_button, #n4v_mf_button:hover {
    transform: scale(1.08);
}
#n4v_fs_button {
	background-image: url("images/n4v_fullscreen.svg?202615");
	background-color: white;
	float: right;
	width: 24px;
	height: 24px;
	border-radius: 3px;
	transition: transform 0.2s ease, filter 0.2s ease;
}
.dropdown-menu>li>a:hover #n4v_fs_button, #n4v_fs_button:hover {
    transform: scale(1.08);
}
#n4v_tm_button {
	background-image: url("images/n4v_table.svg?202615");
	background-color: white;
	width: 20px;
	height: 20px;
	float: right;
	border-radius: 3px;
	transition: transform 0.2s ease, filter 0.2s ease;
}
.dropdown-menu>li>a:hover #n4v_tm_button, #n4v_tm_button:hover {
    transform: scale(1.08);
}
#n4v_if_button {
	background-image: url("images/n4v_info.svg?202615");
	background-color: white;
	width: 20px;
	height: 20px;
	float: right;
	border-radius: 3px;
	transition: transform 0.2s ease, filter 0.2s ease;
}
.dropdown-menu>li>a:hover #n4v_if_button, #n4v_if_button:hover {
    transform: scale(1.08);
}
#n4v_flt_button {
	background-image: url("images/n4v_filter.svg?202615");
	background-color: white;
	float: right;
	border-radius: 3px;
	transition: transform 0.2s ease, filter 0.2s ease;
}
.dropdown-menu>li>a:hover #n4v_flt_button, #n4v_flt_button:hover {
    transform: scale(1.08);
}
#n4v_sel_button {
	background-image: url("images/n4v_cleansel.svg?202615");
	background-color: white;
	float: right;
	border-radius: 3px;
	transition: transform 0.2s ease, filter 0.2s ease;
}
.dropdown-menu>li>a:hover #n4v_sel_button, #n4v_sel_button:hover {
    transform: scale(1.08);
}
#n4v_csv_button {
	background-image: url("images/n4v_csv.svg?202615");
	background-color: white;
	float: right;
	border-radius: 3px;
	transition: transform 0.2s ease, filter 0.2s ease;
}
.dropdown-menu>li>a:hover #n4v_csv_button, #n4v_csv_button:hover {
    transform: scale(1.08);
}

/*Icon alert maps*/
.alert-container {
	display: flex;
	justify-content: center;
	align-items: center;
	position: absolute;
    top: 5px;
    right: 35px;
    z-index: 999;
}

.alert-container a:hover,
.alert-container a:focus {
	text-decoration: none;
}

.alert-icon {
	width: 25px;
	height: 25px;
	background-color: yellow;
	border-radius: 50%;
	display: flex;
	justify-content: center;
	align-items: center;
	color: #ff0000;
	font-size: 24px;
	box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
	border: 3px solid yellow;
}

/*
#n4v_fs_button:not(:fullscreen) {
	background-image: url("images/n4v_fullscreen.svg");
	background-color: white;
	width: 24px;
    height: 24px;	
	float: right;
}

#n4v_fs_button:fullscreen {
	background-image: url("images/n4v_info.svg");
	background-color: red;
	width: 24px;
    height: 24px;	
	float: right;
}

#n4v_flt_button {
	background-image: url("images/n4v_filter.svg");
	width: 20px;
    height: 20px;	
	float: right;
}
*/
/*Gestion du fond des charts avec opacité en fullscreen*/
#container:fullscreen { 
	background-color:#fff;
}

/*DEL*/
#n4v_fl_button {
	background-image: url("images/n4v_filter_on.svg?202615");
	background-color: white;
	width: 24px;
    height: 24px;
	background-position-x: 1.5px;
    background-position-y: 1px;
}

.dropdown:hover .dropdown-n4vmenu{
    display: block;
}
.dropdown-n4vmenu{
    margin-top: 0;
}
	
.dropdown-menu>li>a {
	padding-right: 5px;
	padding-left: 5px;
	font-size: 13px;
    font-family: arial;
	color: #555555;
}
.dropdown-menu>li>a:hover {
	font-weight: bold;
}

.ui-dialog .ui-dialog-content {
	padding: 0;
}
#table_data {
	overflow: hidden;
}

.ui-dialog {
	padding: 0;
	z-index: 1001;
}

.ui-dialog-titlebar, .tabulator-footer{
	line-height: 1em;
}

.ui-widget-header {
    background: #008CB2;
    color: #fff;
}

.N4V_warnDlg .ui-widget-header {
    background: #ff0000;
    color: #fff;
}

.n4v-option-group{
	margin-left: 5px;
	margin-top: 5px;
	margin-bottom: 2px;
	margin-right: 10px;
    display: flex;
    justify-content: space-between;
}

.n4v_form{
	padding: 1px 0px;
}
.n4v_form_check{
	margin: 0px;
}


.n4v_label{
	margin-bottom: 0px;
}

.tabulator {
	font-size: 12px;
}

.tabulator .tabulator-header {
	color: #008CB2 !important;
}	

.tabulator .tabulator-calcs, .tabulator-group  {
	color: #008CB2 !important;
}

.tabulator .tabulator-footer {
    background-color: #f5f5f5 !important;
}

.tabulator-row.tabulator-selectable:hover {
    background-color: #f5f5f5;
    cursor: auto;
}

.tabulator-row.tabulator-group{
	background: #008cb265;
	padding: 0px 5px 0px 10px;
}
.tabulator-row.tabulator-group:hover{
	background: #008cb265;
}

.tabulator-row .tabulator-cell{
	padding: 2px;
}
/*
.tabulator .tabulator-header .tabulator-calcs-holder .tabulator-row {
	background-color: #008cb2 !important;
	color: #fff !important;
}*/

.tabulator .tabulator-footer .tabulator-page-size {
	border: 1px solid #008cb265 !important;
}
.tabulator .tabulator-footer .tabulator-page {
	border: 1px solid #008cb265 !important;
}
.tabulator .tabulator-footer .tabulator-paginator {
    color: #008cb2 !important;
	font-size: 13px;
}
.tabulator .tabulator-footer .tabulator-page:not(.disabled):hover {
    background: #008cb2;
}

.tabulator .tabulator-alert .tabulator-alert-msg.tabulator-alert-state-msg {
    border: 2px solid #008cb265 !important;
    color: #008cb2 !important;
	font-size: 14px !important;
}

.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title {
    white-space: pre-wrap;
	text-overflow: unset;
	width: 100%;
}
.tabulator .tabulator-header .tabulator-col {
	justify-content: flex-end;
}

.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=none] .tabulator-col-content .tabulator-col-sorter .tabulator-arrow {
	border-bottom: 6px solid #008cb270;
}
.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=ascending] .tabulator-col-content .tabulator-col-sorter .tabulator-arrow {
    border-bottom: 6px solid #008cb2;
}
.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=descending] .tabulator-col-content .tabulator-col-sorter .tabulator-arrow {
    border-top: 6px solid #008cb2;
}

.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title-holder {
    width: 100%;
}
	
.tabulator-ctrlc {
	float: left;
	border: 1px solid #008cb265 !important;
	color: #008cb2 !important;
}
.tabulator-footer {
	height: 30px;
}
.tabulator .tabulator-footer .tabulator-page-size {
	padding: 0px;
}

.tabulator-menu {
	top: 0px !important;	
	font-size: 13px;
}

.tabulator-col-title {
	font-size: 13px;
}
.tabulator-row.tabulator-group {
    padding-bottom: 1px;
    padding-top: 1px;
	display: flex;
}

.tabulator-menu .tabulator-menu-item {
	color: #008CB2;
	padding: 2px 20px 2px 5px;
}
.tabulator-menu .tabulator-menu-item:not(.tabulator-menu-item-disabled):hover {
	color: #fff;
	background-color: #008CB2;
}

.tabulator-edit-list {
	top: 0px;
}

.tabulator-col .tabulator-sortable {
	height: 40px !important;	
}

.tabulator-calcs-top>.tabulator-cell {
	height: 20px !important;
/*	padding-bottom: 0px;
	padding-top: 0px;*/
}

.tabulator-menu .tabulator-menu-item.tabulator-menu-item-submenu:after{
	border-color: #008CB2;
}

.tabulator-menu .tabulator-menu-item.tabulator-menu-item-submenu:hover:after{
	border-color: #fff;
}
/*
.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-header-popup-button {
    background-color: #fff;
    color: #008cb2;
	border-radius: 20px;
	opacity: .6;
    padding: 0 6px;
	margin-right: 2px;
}*/

.tabulator-col-title:hover > .tabulator-header-popup-button {  
	background-color: #008cb2 !important;
    color: white !important;
}

.tabulator-col-N4V-header-holder{
	display:flex;
	flex-direction: row;
}

input[type=search]::placeholder {
	color: #008cb265;
}
input[type=search] {
    border-width: thin;
    border-radius: 3px;
	border-color: #008cb265;
	height: 20px;	
	font-size: 12px;
	font-weight: normal;
}
input[type=search]:focus-visible {
    outline-width: thin;
    outline-color: #008cb265;
}


.tab-content {
    margin-left: 5px;
    margin-top: 5px;
}

.nav {
    background-color: aliceblue;
}

.nav>li>a:focus, .nav>li>a:hover {
    background-color: aliceblue;
}

.nav-tabs>li {
    font-weight: bold;
}

.tinf_n4v>thead>tr>th {
	background-color: #b8cce0 !important;
	color: #34495E;
}

.btnLeg span {
	font-size: 1.2em !important;
	font-weight: bold !important;
	top: 0px !important;
    left: 8px !important;
	color: #008cb2 !important;	
}
.btnLeg>rect:hover {
	transform: scale(1.02);
}
.btnLeg>rect {
	width: 20px;
	height: 20px;
	transition: transform 0.1s;
	stroke: #008cb2;
	fill: transparent;
}

.pinTooltipBtn {
	position: absolute;
	top: 5px;
	right: 5px;
	z-index: 1001;
	background: #fff;
	border: 0px;
	cursor: pointer;
    height: 25px;
    width: 25px;
    padding: 0px;
}
.TooltipChartBar {	
	cursor: move; 
	background: #efefef; 
	padding: 4px; 
	font-weight: bold;
	color: #3d3d3d;
}
.TooltipChartBtnR {	
	right:55px; 
	border: 1px solid #DEDEDE;
	border-radius: 2px;
	padding: 0px;
}
.TooltipChartBtnR:hover {
	border: 1px solid #222222;
}
.TooltipChartBtnC {
	right:5px; 
	border: 1px solid #DEDEDE;
	border-radius: 2px;
	padding: 0px;
}
.TooltipChartBtnC:hover {
	border: 1px solid #222222;
}

.TooltipChartBtnCA {
	right:30px; 
	border: 0px;
}

.TooltipChartBtnA {
	right:80px; 
	border: 1px solid #DEDEDE;
	border-radius: 2px;
	padding: 0px;
}
.TooltipChartBtnA:hover {
	border: 1px solid #222222;
}

.TooltipChartBtn {
    position:absolute; 
	top:6px; 
	color: #3D3D3D;
    background-color: #f0f0f0 !important;
	cursor:pointer;
	width: 22px;
    height: 22px;
}

.TooltipChartBtn:hover {
    color: #222222;
}

.chart-clone{
	padding: 4px !important;
}

/*Loader N4V*/

#N4Vloader {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(250, 250, 250, 0.7);
	z-index: 9999;
	display: flex;
	justify-content: center;
	align-items: center;
}
.N4Vspinner {
	width: 50px;
	height: 50px;
	border: 6px solid #00AECA;
	border-top: 6px solid #FBBE00;
	border-radius: 50%;
	animation: N4Vspin 1s linear infinite;
}

@keyframes N4Vspin {
	to { transform: rotate(360deg); }
}


/*Popup Export CSV*/
:root {
  --n4v-accent:        #008CB2;   /* bleu principal 2563eb*/
  --n4v-accent-hover:  #00769B;
  --n4v-accent-soft:   #E6F5FA;
  --n4v-surface:       #ffffff;
  --n4v-surface-alt:   #f8fafc;
  --n4v-border:        #e2e8f0;
  --n4v-text:          #0f172a;
  --n4v-text-muted:    #64748b;
  --n4v-radius:        10px;
  --n4v-shadow:        0 10px 38px -10px rgba(2, 6, 23, .25),
                       0 4px 12px -4px rgba(2, 6, 23, .12);
  --n4v-font:          system-ui, -apple-system, "Segoe UI", Roboto,
                       "Helvetica Neue", Arial, sans-serif;

/* Réglages compacité Data table view*/

  --n4v-cell-pad-y:    2px;
  --n4v-cell-pad-x:    8px;
  --n4v-table-fs:      12.5px;
}

/*** POPUP EXPORT CSV ***/

/* ---------- Habillage du dialog jQuery UI ---------- */
 
.ui-dialog:has(#csv_export_view),
.ui-dialog:has(#info_view)  {
  border: 1px solid var(--n4v-border);
  border-radius: calc(var(--n4v-radius) + 4px);
  box-shadow: var(--n4v-shadow);
  overflow: hidden;
  padding: 0;
  font-family: var(--n4v-font);
  background: var(--n4v-surface);
}
 
.ui-dialog:has(#csv_export_view) .ui-dialog-titlebar {
  background: var(--n4v-surface);
  border: 0;
  border-bottom: 1px solid var(--n4v-border);
  border-radius: 0;
  padding: 2px 10px;
  font-size: 13px;
  font-weight: 600;
  line-height: 20px;
  color: var(--n4v-text);
}
 
.ui-dialog:has(#csv_export_view) .ui-dialog-titlebar-close {
  border: 0;
  background: transparent;
  border-radius: 6px;
  transition: background-color .15s ease;
}
 
.ui-dialog:has(#csv_export_view) .ui-dialog-titlebar-close:hover {
  background: var(--n4v-surface-alt);
}
 
/* Voile derrière la popup */
.ui-widget-overlay {
  background: rgba(15, 23, 42, .45);
  opacity: 1;
  backdrop-filter: blur(2px);
}
 
/* ---------- Contenu ---------- */
 
#csv_export_view {
  padding: 5px;
  background: var(--n4v-surface);
  color: var(--n4v-text);
  font-family: var(--n4v-font);
  font-size: 13px;
}
 
.csv-export-container {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 340px;
}
 
/* Grille d'options : 2 colonnes, passe en 1 colonne si étroit */
.csv-options {
  display: grid;
  grid-template-columns: repeat(2, minmax(150px, 1fr));
  gap: 0px;
}
 
@media (max-width: 420px) {
  .csv-options { grid-template-columns: 1fr; }
}
 
.n4v-option-group {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
 
/* Le champ "Filename" prend toute la largeur */
.n4v-option-group:has(#csv_filename) {
  grid-column: 1 / -1;
}
 
/* La checkbox s'affiche en ligne : case + libellé */
.n4v-option-group:has(.n4v_form_check) {
  grid-column: 1 / -1;
  flex-direction: row-reverse;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
}
 
/* ---------- Labels ---------- */
 
.n4v_label {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .02em;
  text-transform: uppercase;
  color: var(--n4v-text-muted);
  cursor: pointer;
  line-height: 1.3;
}
 
.n4v-option-group:has(.n4v_form_check) .n4v_label {
  text-transform: none;
  font-size: 14px;
  font-weight: 500;
  color: var(--n4v-text);
}
 
/* ---------- Champs (select + input) ---------- */
 
select.n4v_form,
input[type="text"].n4v_form {
  appearance: none;
  -webkit-appearance: none;
  width: 100%;
  box-sizing: border-box;
  padding: 3px 8px;
  font: inherit;
  color: var(--n4v-text);
  background: var(--n4v-surface-alt);
  border: 1px solid var(--n4v-border);
  border-radius: var(--n4v-radius);
  outline: none;
  transition: border-color .15s ease, box-shadow .15s ease,
              background-color .15s ease;
}
 
/* Chevron custom pour les selects */
select.n4v_form {
  padding-right: 34px;
  cursor: pointer;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
}
 
select.n4v_form:hover,
input[type="text"].n4v_form:hover {
  border-color: #cbd5e1;
}
 
select.n4v_form:focus-visible,
input[type="text"].n4v_form:focus-visible {
  border-color: var(--n4v-accent);
  background: var(--n4v-surface);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--n4v-accent) 20%, transparent);
}
 
input[type="text"].n4v_form::placeholder {
  color: var(--n4v-text-muted);
}
 
/* ---------- Checkbox ---------- */
 
input[type="checkbox"].n4v_form_check {
  appearance: none;
  -webkit-appearance: none;
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  margin: 0;
  border: 1.5px solid var(--n4v-border);
  border-radius: 5px;
  background: var(--n4v-surface-alt);
  cursor: pointer;
  display: inline-grid;
  place-content: center;
  transition: background-color .15s ease, border-color .15s ease;
}
 
input[type="checkbox"].n4v_form_check::before {
  content: "";
  width: 10px;
  height: 10px;
  transform: scale(0);
  transition: transform .12s ease-in-out;
  background: #fff;
  clip-path: polygon(14% 44%, 0 61%, 40% 100%, 100% 16%, 84% 4%, 39% 71%);
}
 
input[type="checkbox"].n4v_form_check:checked {
  background: var(--n4v-accent);
  border-color: var(--n4v-accent);
}
 
input[type="checkbox"].n4v_form_check:checked::before {
  transform: scale(1);
}
 
input[type="checkbox"].n4v_form_check:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--n4v-accent) 20%, transparent);
}

/* Badge d'agrégation sur la timeline */
.n4v-sum-badge{
    position: absolute;
		z-index: 25;
		width:26px;
		height:26px;
		line-height:26px;
		text-align:center;
		background: rgba(255, 255, 255, 0.795);
		color:rgb(122, 136, 148);
		font-family:arial;
		font-size:14px;
		font-weight:bold;
		border-radius:50%;
		box-shadow:inset 0 0 0 2px #9aa7b3;
		cursor: pointer;
		user-select: none;
}

.n4v-sum-badge:hover{
  background:rgba(40,80,80,0.92);
  color: rgba(255, 255, 255, 0.795);
}

/* ---------- Bouton d'export ---------- */
 
.n4v-csv-actions {
  display: flex;
  justify-content: flex-end;
  padding-top: 5px;
  border-top: 1px solid var(--n4v-border);
}
 
.n4v-btn-export {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 15px;
  font: inherit;
  font-weight: 600;
  color: #fff;
  background: var(--n4v-accent);
  border: 0;
  border-radius: var(--n4v-radius);
  cursor: pointer;
  box-shadow: 0 1px 2px rgba(2, 6, 23, .12);
  transition: background-color .15s ease, transform .1s ease,
              box-shadow .15s ease;
}
 
.n4v-btn-export:hover {
  background: var(--n4v-accent-hover);
  box-shadow: 0 4px 12px -2px color-mix(in srgb, var(--n4v-accent) 45%, transparent);
}
 
.n4v-btn-export:active {
  transform: translateY(1px);
  box-shadow: none;
}
 
.n4v-btn-export:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--n4v-accent) 30%, transparent);
}
 
.n4v-btn-export .fa {
  font-size: 13px;
}


/*** Data Table View ***/

/* ---------- Habillage du dialog ---------- */
 
.ui-dialog:has(#table_data) {
  border: 1px solid var(--n4v-border);
  border-radius: calc(var(--n4v-radius) + 4px);
  box-shadow: var(--n4v-shadow);
  overflow: hidden;
  padding: 0;
  font-family: var(--n4v-font);
  background: var(--n4v-surface);
}

#info_view {
  padding: 5px;
}

.ui-dialog:has(#table_data) .ui-dialog-titlebar, 
.ui-dialog:has(#info_view) .ui-dialog-titlebar {
  background: var(--n4v-surface);
  border: 0;
  border-bottom: 1px solid var(--n4v-border);
  border-radius: 0;
  padding: 8px 14px;                 /* compact */
  font-size: 13px;
  line-height: 1.1em;
  font-weight: 600;
  color: var(--n4v-text);
}
 
.ui-dialog:has(#table_data) .ui-dialog-titlebar-close,
.ui-dialog:has(#table_data) .ui-button-fullscreen,
.ui-dialog:has(#info_view) .ui-dialog-titlebar-close {
  border: 0;
  background: transparent;
  border-radius: 6px;
  transition: background-color .15s ease;
}
 
.ui-dialog:has(#table_data) .ui-dialog-titlebar-close:hover,
.ui-dialog:has(#table_data) .ui-button-fullscreen:hover,
.ui-dialog:has(#info_view) .ui-dialog-titlebar-close:hover {
  background: var(--n4v-surface-alt);
}
 
/* ---------- Conteneur Tabulator ---------- */
 
#table_data.tabulator {
  border: 0;
  background: var(--n4v-surface);
  font-family: var(--n4v-font);
  font-size: var(--n4v-table-fs);
  color: var(--n4v-text);
}
 
/* ---------- En-tête ---------- */
 
#table_data .tabulator-header {
  background: var(--n4v-surface-alt);
  border-bottom: 1px solid var(--n4v-border);
  color: var(--n4v-text-muted);
}
 
#table_data .tabulator-col {
  background: transparent;
  border-right: 1px solid var(--n4v-border);
}
 
#table_data .tabulator-col:last-of-type { border-right: 0; }
 
#table_data .tabulator-col-content {
  padding: 4px 6px;                  /* compact */
}
 
#table_data .tabulator-col-title {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .03em;
  text-transform: uppercase;
  color: var(--n4v-text-muted);
}
 
#table_data .tabulator-col.tabulator-sortable:hover {
  background: color-mix(in srgb, var(--n4v-accent-soft) 60%, var(--n4v-surface-alt));
}
 
/* Flèches de tri */
#table_data .tabulator-col .tabulator-arrow {
  border-width: 4px;                 /* plus discret */
  border-bottom-color: #cbd5e1;
}
 
#table_data .tabulator-col[aria-sort="ascending"] .tabulator-arrow {
  border-bottom-color: var(--n4v-accent);
}
 
#table_data .tabulator-col[aria-sort="descending"] .tabulator-arrow {
  border-top-color: var(--n4v-accent);
  border-bottom-color: transparent;
}
 
/* Bouton options colonne (⋮) */
#table_data .tabulator-header-popup-button {
  padding: 0 4px;
  border-radius: 4px;
  color: var(--n4v-text-muted);
  cursor: pointer;
  transition: background-color .15s ease, color .15s ease;
}
 
#table_data .tabulator-header-popup-button:hover {
  background: var(--n4v-accent-soft);
  color: var(--n4v-accent);
}
 
/* Champs filtre — version mini des inputs n4v_form.
   !important requis : Tabulator pose un padding inline. */
#table_data .tabulator-header-filter input {
  padding: 3px 6px !important;
  font: inherit;
  font-size: 12px;
  color: var(--n4v-text);
  background: var(--n4v-surface);
  border: 1px solid var(--n4v-border);
  border-radius: 6px;
  outline: none;
  transition: border-color .15s ease, box-shadow .15s ease;
}
 
#table_data .tabulator-header-filter input::placeholder {
  color: #a3b0c2;
  font-size: 11px;
}
 
#table_data .tabulator-header-filter input:focus-visible {
  border-color: var(--n4v-accent);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--n4v-accent) 20%, transparent);
}
 
/* ---------- Ligne de calculs (Distinct count / Sum) ---------- */
 
#table_data .tabulator-calcs-holder {
  background: var(--n4v-accent-soft);
  border-top: 1px solid var(--n4v-border);
  border-bottom: 1px solid var(--n4v-border);
}
 
#table_data .tabulator-row.tabulator-calcs {
  background: transparent;
  border: 0;
  font-weight: 600;
  font-size: 11.5px;
  color: var(--n4v-accent-hover);
}
 
/* ---------- Lignes & cellules ---------- */
 
#table_data .tabulator-cell {
  padding: var(--n4v-cell-pad-y) var(--n4v-cell-pad-x);
  border-right: 1px solid color-mix(in srgb, var(--n4v-border) 55%, transparent);
}
 
#table_data .tabulator-cell:last-of-type { border-right: 0; }
 
#table_data .tabulator-row {
  border-bottom: 0;
  background: var(--n4v-surface);
  transition: background-color .1s ease;
}
 
/* Zébrage discret */
#table_data .tabulator-row.tabulator-row-even {
  background: var(--n4v-surface-alt);
}
 
/* Hover + sélection */
#table_data .tabulator-row.tabulator-selectable:hover {
  background: var(--n4v-accent-soft);
  cursor: pointer;
}
 
#table_data .tabulator-row.tabulator-selected {
  background: color-mix(in srgb, var(--n4v-accent) 14%, var(--n4v-surface));
}
 
#table_data .tabulator-row.tabulator-selected:hover {
  background: color-mix(in srgb, var(--n4v-accent) 20%, var(--n4v-surface));
}
 
/* Poignées de redimensionnement : feedback au survol */
#table_data .tabulator-col-resize-handle:hover {
  background: color-mix(in srgb, var(--n4v-accent) 35%, transparent);
}
 
/* ---------- Scrollbar fine (WebKit + Firefox) ---------- */
 
#table_data .tabulator-tableholder {
  scrollbar-width: thin;
  scrollbar-color: #cbd5e1 transparent;
}
 
#table_data .tabulator-tableholder::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}
 
#table_data .tabulator-tableholder::-webkit-scrollbar-thumb {
  background: #cbd5e1;
  border-radius: 4px;
}
 
#table_data .tabulator-tableholder::-webkit-scrollbar-thumb:hover {
  background: var(--n4v-text-muted);
}


/* ==========================================================================
   Compatibilité Bootstrap 3 / Bootstrap 5 du menu N4V
   --------------------------------------------------------------------------
   Le markup généré (ul > li > a, .dropdown-menu-right, data-toggle) est du
   Bootstrap 3. Bootstrap 5 ne le style plus : classe de positionnement
   renommée, plus aucune règle pour "ul > li > a", <a> souligné par défaut,
   ombre supprimée. Les règles ci-dessous rétablissent le rendu BS3 sous BS5
   et reprennent à l'identique les valeurs BS3, donc elles sont neutres
   lorsque bootstrap.min.css (BS3) est chargé.
   ========================================================================== */

/* 1. Ouverture vers la gauche du bouton.
      BS3 : .dropdown-menu-right { right:0; left:auto }
      BS5 : renommée .dropdown-menu-end et active seulement avec
            [data-bs-popper] -> le menu débordait hors de l'iframe. */
.dropdown-n4vmenu {
	right: 0;
	left: auto;
}

/* 2. Habillage du panneau (valeurs Bootstrap 3). */
.dropdown-n4vmenu {
	/* variables Bootstrap 5 - ignorées par BS3 */
	--bs-dropdown-min-width: 160px;
	--bs-dropdown-padding-y: 5px;
	--bs-dropdown-padding-x: 0;
	--bs-dropdown-spacer: 0;
	--bs-dropdown-font-size: 14px;
	--bs-dropdown-color: #333333;
	--bs-dropdown-bg: #ffffff;
	--bs-dropdown-border-width: 1px;
	--bs-dropdown-border-color: rgba(0, 0, 0, .15);
	--bs-dropdown-border-radius: 4px;
	--bs-dropdown-inner-border-radius: 3px;
	--bs-dropdown-box-shadow: 0 6px 12px rgba(0, 0, 0, .175);
	--bs-dropdown-link-color: #555555;
	/* équivalents explicites - valables sous BS3 comme sous BS5 */
	min-width: 160px;
	padding: 5px 0;
	margin-top: 0;
	font-family: arial;
	font-size: 14px;
	line-height: 1.42857143;
	color: #333333;
	text-align: left;
	list-style: none;
	background-color: #ffffff;
	background-clip: padding-box;
	border: 1px solid rgba(0, 0, 0, .15);
	border-radius: 4px;
	box-shadow: 0 6px 12px rgba(0, 0, 0, .175);
}

/* 3. Les entrées du menu : BS5 n'a plus aucune règle pour "ul > li > a"
      (remplacé par .dropdown-item), d'où des <a> en ligne, sans padding
      vertical, soulignés, et les icônes flottantes qui se décalent. */
.dropdown-n4vmenu > li > a {
	display: block;
	clear: both;
	padding: 3px 5px;
	font-family: arial;
	font-size: 13px;
	font-weight: 400;
	line-height: 1.42857143;
	color: #555555;
	text-decoration: none;
	white-space: nowrap;
	background-color: transparent;
	border: 0;
}

.dropdown-n4vmenu > li > a:hover,
.dropdown-n4vmenu > li > a:focus {
	font-weight: bold;
	color: #262626;
	text-decoration: none;
	background-color: #f5f5f5;
}