/* Tri et filtre communs des tableaux : js/components/tableauxTriables.js */
th[data-ft-triable] { cursor: pointer; user-select: none; }
th[data-ft-triable]:hover { background-color: rgba(100, 116, 139, 0.12); }
th[data-ft-triable]:focus-visible { outline: 2px solid #3b82f6; outline-offset: -2px; }
th[data-ft-triable]::after { content: "\2195"; margin-left: 0.3em; opacity: 0.3; font-weight: 400; }
th[data-ft-tri="asc"]::after { content: "\2191"; opacity: 1; }
th[data-ft-tri="desc"]::after { content: "\2193"; opacity: 1; }
tr[data-ft-masque] { display: none !important; }
tr[data-ft-filtre] > th { padding: 0.375rem 0.5rem; font-weight: 400; text-transform: none; letter-spacing: normal; text-align: left; }
.ft-barre { display: flex; align-items: center; gap: 0.5rem; }
.ft-champ { width: 100%; max-width: 20rem; padding: 0.25rem 0.5rem; font-size: 0.8125rem; border: 1px solid #d1d5db; border-radius: 0.375rem; background: #fff; color: #111827; }
.ft-champ:focus { outline: 2px solid #3b82f6; outline-offset: -1px; border-color: transparent; }
.ft-compte { font-size: 0.75rem; color: #6b7280; white-space: nowrap; }
.dark .ft-champ { background: #1e293b; border-color: #475569; color: #f1f5f9; }
.dark .ft-compte { color: #94a3b8; }
