/* Fonts installées : Inter et Roboto */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@100..900&family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap');
/* @import "./flowbite_admin_dashboard/src/style.css"; */

@tailwind base;
@tailwind components;
@tailwind utilities;

@layer base {
  .app-main-theme {
    background-color: var(--color-app-bg);
    @apply text-slate-700 dark:text-slate-200;
  }
  .dark .app-main-theme {
    background-color: var(--color-app-bg-dark);
  }

  .app-sidebar {
    background-color: var(--color-sidebar-bg);
  }
  .dark .app-sidebar {
    background-color: var(--color-sidebar-bg-dark);
  }

  /* [data-theme="tr-purple"] .app-main-theme{
    @apply bg-tr-purple-50 dark:bg-tr-purple-950;
  } */

  .invalid-feedback,
  .invalid-feedback-error-display {
    @apply text-sm text-red-600 dark:text-red-500 italic;
  }

  a:not([class*="btn-"]):not(table td a):not(table th a) {
    color: var(--color-link-text);
  }
  .dark a:not([class*="btn-"]):not(table td a):not(table th a)   {
    color: var(--color-link-text-dark);
  }
  a:not([class*="btn-"]):not(table td a):not(table th a):hover {
    color: color-mix(in srgb, var(--color-link-text) 75%, black);
  }
  .dark a:not([class*="btn-"]):not(table td a):not(table th a):hover {
    color: color-mix(in srgb, var(--color-link-text-dark) 75%, white);
  }

  /* Dans les tableaux, les liens doivent garder la couleur de ligne (row_text). */
  table td a:not([class*="btn-"]),
  table td a:not([class*="btn-"]):hover {
    color: inherit;
  }

  table td label.value,
  table td .cell-data--money,
  table td .cell-data--money label.value {
    color: inherit;
  }

  .dark table td a:not([class*="btn-"]),
  .dark table td a:not([class*="btn-"]):hover {
    color: inherit;
  }

  .dark table td label.value,
  .dark table td .cell-data--money,
  .dark table td .cell-data--money label.value {
    color: inherit;
  }

  a.btn-long,
  span.btn-long {
    @apply rounded;
    @apply text-white;
    @apply bg-blue-500 dark:bg-blue-600;
    @apply hover:bg-blue-700 dark:hover:bg-blue-800;
    font-size: clamp(0.65rem, 1.8vw, 0.8rem);
    padding: clamp(0.25rem, 0.8vw, 0.4rem) clamp(1rem, 3vw, 2rem);
    @apply font-bold;
    @apply focus:outline-none;
    @apply inline-block;
    @apply w-full;
    @apply h-auto;
    @apply flex items-center justify-center;
  }

  .btn-default.pointer-events-none,
  .btn-validate.pointer-events-none {
    background: grey;
  }

  .btn-cancel {
    @apply rounded;
    @apply text-xs xl:text-sm 2xl:text-base;
    @apply py-1 px-1 xl:px-2 2xl:py-1.5 2xl:px-4;
    @apply font-bold;
    @apply cursor-pointer;
    @apply focus:outline-none;
    @apply inline-flex items-center justify-center;
    @apply whitespace-nowrap;
    @apply shadow-none hover:shadow-none;
    @apply transform-none hover:translate-y-0;
    @apply transition-colors duration-200 ease-in-out;
    @apply border border-transparent;
    @apply text-white;
    @apply hover:text-white;
    @apply bg-slate-500 dark:bg-slate-600;
    @apply hover:bg-red-600 dark:hover:bg-red-600;
  }

  .btn-delete {
    @apply rounded;
    font-size: clamp(0.65rem, 1.8vw, 0.8rem);
    padding: clamp(0.25rem, 0.8vw, 0.4rem) clamp(0.5rem, 1.5vw, 0.85rem);
    @apply font-bold;
    @apply text-white;
    @apply focus:outline-none;
    @apply inline-block;
    @apply w-min h-min;
    @apply flex items-center justify-center;
    @apply bg-slate-500 dark:bg-slate-600;
    @apply hover:bg-red-600 dark:hover:bg-red-600;
  }

  a.table-link-edit {
    @apply font-semibold;
    @apply text-green-500 dark:text-green-400;
    @apply hover:text-green-700 dark:hover:text-green-500;
  }

  table {
    @apply rounded;
    @apply shadow-md;
    @apply border-collapse;
  }

  th {
    @apply text-sm font-medium;
    @apply text-center;
    @apply py-1;
  }

  tr {
    @apply dark:hover:bg-slate-800;
  }

  tr.subheader th {
    background-color: color-mix(in srgb, var(--color-table-header-bg) 20%, white);
    color: var(--color-table-header-text);
  }

  .dark tr.subheader th {
    background-color: color-mix(in srgb, var(--color-table-header-bg-dark) 50%, black);
    color: var(--color-table-header-text-dark);
  }

  th {
    background-color: var(--color-table-header-bg);
    color: var(--color-table-header-text);
  }

  .dark th {
    background-color: var(--color-table-header-bg-dark);
    color: var(--color-table-header-text-dark);
  }

  thead tr {
    background-image: none;
    border: none;
  }

  .table-surface {
    background-color: var(--color-table-even-bg);
  }

  .dark .table-surface {
    background-color: var(--color-table-even-bg-dark);
  }

  td {
    @apply text-left tracking-tighter;
    color: var(--color-table-row-text);
    border-bottom: 1px solid var(--color-table-row-border);
  }

  .dark td {
    color: var(--color-table-row-text-dark);
    border-bottom-color: var(--color-table-row-border-dark);
  }

  tr:hover td {
    background-color: var(--color-table-row-hover-bg);
  }

  tr:hover {
    background-color: var(--color-table-row-hover-bg);
  }

  .dark tr:hover td {
    background-color: var(--color-table-row-hover-bg-dark);
  }

  .dark tr:hover {
    background-color: var(--color-table-row-hover-bg-dark);
  }

  /* Empêche le hover sur les lignes d'en-tête */
  thead tr:hover,
  thead tr:hover th,
  thead:hover tr,
  thead:hover th {
    background-color: var(--color-table-header-bg) !important;
    color: var(--color-table-header-text) !important;
  }
  .dark thead tr:hover,
  .dark thead tr:hover th,
  .dark thead:hover tr,
  .dark thead:hover th {
    background-color: var(--color-table-header-bg-dark) !important;
    color: var(--color-table-header-text-dark) !important;
  }

  .administrate-table tbody tr:nth-child(odd) {
    background-color: var(--color-table-stripe-bg);
  }

  .dark .administrate-table tbody tr:nth-child(odd) {
    background-color: var(--color-table-stripe-bg-dark);
  }

  .administrate-table tbody tr:nth-child(even) {
    background-color: var(--color-table-even-bg);
  }

  .dark .administrate-table tbody tr:nth-child(even) {
    background-color: var(--color-table-even-bg-dark);
  }

  .administrate-table thead th:empty {
    width: 1px;
    padding: 0;
  }

  .payslip-footer {
    background-color: var(--color-table-header-bg) !important;
    color: var(--color-table-header-text) !important;
  }
  .dark .payslip-footer {
    background-color: var(--color-table-header-bg-dark) !important;
    color: var(--color-table-header-text-dark) !important;
  }

  /* Status defined with colors */
  /* Green */
  span.enum_status[status_value="validated"],
  span.enum_status[status_value="completed"],
  span.enum_status[status_value="approved"],
  span.enum_status[status_value="paid"],
  span.enum_status[status_value="done"],
  span.enum_status[status_value="refund_paid"],
  span.enum_status[status_value="signed"],
  span.enum_status[status_value="validated_amount"],
  span.enum_status[status_value="pending_payment"],
  span.enum_status[status_value="colored_true"] {
    @apply text-green-500 dark:text-green-400;
  }

  /* Dark + hover: Red */
  span.enum_status[status_value="rejected"],
  span.enum_status[status_value="refund_unpaid"],
  span.enum_status[status_value="refused"],
  span.enum_status[status_value="missing"],
  span.enum_status[status_value="already_has_funnel"],
  span.enum_status[status_value="third_reminder"],
  span.enum_status[status_value="colored_false"] {
    @apply text-red-500 dark:text-red-400;
  }

  /* Grey */
  span.enum_status[status_value="canceled"],
  span.enum_status[status_value="refund_na"],
  span.enum_status[status_value="refund_abandoned"],
  span.enum_status[status_value="abandoned"],
  span.enum_status[status_value="archived"] {
    @apply text-gray-400 dark:text-gray-400;
  }

  /* Orange */
  span.enum_status[status_value="ready_for_signature"],
  span.enum_status[status_value="waiting_for_signature"],
  span.enum_status[status_value="waiting_for_signed_document"],
  span.enum_status[status_value="unpaid"],
  span.enum_status[status_value="due"],
  span.enum_status[status_value="overdue"],
  span.enum_status[status_value="draft"],
  span.enum_status[status_value="pending"],
  span.enum_status[status_value="submitted"],
  span.enum_status[status_value="in_progress"],
  span.enum_status[status_value="generated"],
  span.enum_status[status_value="refund_partial"],
  span.enum_status[status_value="none_sent"],
  span.enum_status[status_value="first_overdue_reminder"],
  span.enum_status[status_value="second_overdue_reminder"] {
    @apply text-orange-400 dark:text-orange-300;
  }

  /* Blue - Info States */
  span.enum_status[status_value="prolongation"] {
    @apply text-blue-500 dark:text-blue-400;
  }

  .selectize-input {
    @apply bg-gray-50 text-gray-500 border-gray-300;
  }
  .dark .selectize-input {
    @apply bg-gray-700 text-gray-200 border-gray-600;
  }
}

@layer components {
  /* =========================================
   * Base commune — structure identique pour tous les boutons
   * ========================================= */
  button,
  input[type="submit"], input[type="button"],
  .btn-validate, .btn-danger, .btn-edit,
  .btn-close, .btn-add, .btn-default, .btn-ywl, .btn-blue, .btn-purple, .btn-orange, .btn-critical {
    @apply rounded font-bold text-white cursor-pointer leading-none;
    @apply focus:outline-none;
    @apply inline-flex items-center justify-center text-center;
    @apply w-fit max-w-full h-min;
    @apply shadow-none hover:shadow-none transform-none hover:translate-y-0;
    @apply transition-colors duration-200 ease-in-out;
    font-size: clamp(0.65rem, 1.8vw, 0.8rem);
    padding: clamp(0.35rem, 1vw, 0.55rem) clamp(0.5rem, 1.5vw, 0.85rem);
    background-color: var(--color-primary);
  }

  button:hover,
  input[type="submit"]:hover, input[type="button"]:hover,
  .btn-validate:hover, .btn-danger:hover, .btn-edit:hover,
  .btn-close:hover, .btn-add:hover, .btn-default:hover, .btn-ywl:hover, .btn-blue:hover, .btn-purple:hover, .btn-orange:hover, .btn-critical:hover {
    background-color: var(--color-primary-hover);
    @apply text-white;
  }

  /* Boutons par défaut : label coloré via palette tenant */
  button:not(.sideBar-menu):not(.btn-icon):not(.btn-validate):not(.btn-danger):not(.btn-edit):not(.btn-close):not(.btn-ywl):not(.btn-blue):not(.btn-purple):not(.btn-orange):not(.btn-critical),
  input[type="submit"]:not(.btn-validate):not(.btn-danger):not(.btn-edit):not(.btn-close):not(.btn-ywl):not(.btn-blue):not(.btn-purple):not(.btn-orange):not(.btn-critical),
  input[type="button"]:not(.btn-validate):not(.btn-danger):not(.btn-edit):not(.btn-close):not(.btn-ywl):not(.btn-blue):not(.btn-purple):not(.btn-orange):not(.btn-critical),
  .btn-add, .btn-default {
    color: var(--color-btn-label);
  }

  .dark button:not(.sideBar-menu):not(.btn-icon):not(.btn-validate):not(.btn-danger):not(.btn-edit):not(.btn-close):not(.btn-ywl):not(.btn-blue):not(.btn-purple):not(.btn-orange):not(.btn-critical),
  .dark input[type="submit"]:not(.btn-validate):not(.btn-danger):not(.btn-edit):not(.btn-close):not(.btn-ywl):not(.btn-blue):not(.btn-purple):not(.btn-orange):not(.btn-critical),
  .dark input[type="button"]:not(.btn-validate):not(.btn-danger):not(.btn-edit):not(.btn-close):not(.btn-ywl):not(.btn-blue):not(.btn-purple):not(.btn-orange):not(.btn-critical),
  .dark .btn-add, .dark .btn-default {
    background-color: var(--color-primary-dark);
    color: var(--color-btn-label-dark);
  }

  .dark button:not(.sideBar-menu):not(.btn-icon):not(.btn-validate):not(.btn-danger):not(.btn-edit):not(.btn-close):not(.btn-ywl):not(.btn-blue):not(.btn-purple):not(.btn-orange):not(.btn-critical):hover,
  .dark input[type="submit"]:not(.btn-validate):not(.btn-danger):not(.btn-edit):not(.btn-close):not(.btn-ywl):not(.btn-blue):not(.btn-purple):not(.btn-orange):not(.btn-critical):hover,
  .dark input[type="button"]:not(.btn-validate):not(.btn-danger):not(.btn-edit):not(.btn-close):not(.btn-ywl):not(.btn-blue):not(.btn-purple):not(.btn-orange):not(.btn-critical):hover,
  .dark .btn-add:hover, .dark .btn-default:hover {
    background-color: var(--color-primary-dark-hover);
  }

  /* ==========================================
   * Variantes colorées — seules les couleurs varient
   * ========================================== */

  /* Valider / Accepter */
  .btn-validate,
  input[type="submit"].btn-validate, input[type="button"].btn-validate { @apply bg-green-600 hover:bg-green-700 dark:bg-green-500 dark:hover:bg-green-600; }

  /* Supprimer / Dévalider */
  .btn-danger,
  input[type="submit"].btn-danger, input[type="button"].btn-danger { @apply bg-red-600 hover:bg-red-700 dark:bg-red-800 dark:hover:bg-red-900; }

  /* Modifier */
  .btn-edit,
  input[type="submit"].btn-edit, input[type="button"].btn-edit { @apply bg-blue-600 hover:bg-blue-700 dark:bg-blue-700 dark:hover:bg-blue-800; }

  /* Fermer */
  .btn-close,
  input[type="submit"].btn-close, input[type="button"].btn-close { @apply bg-gray-400 hover:bg-red-600 dark:bg-gray-600 dark:hover:bg-red-600; }

  /* "+" — padding compact uniquement, couleur héritée de la base */
  .btn-add { padding: clamp(0.15rem, 0.5vw, 0.25rem) clamp(0.35rem, 1vw, 0.5rem); }

  /* Jaune — actions contextuelles custom */
  .btn-ywl { @apply bg-yellow-400 hover:bg-yellow-500 dark:bg-yellow-600 dark:hover:bg-yellow-800; }

  /* Bleu — actions d'info / navigation secondaire */
  .btn-blue { @apply bg-blue-500 hover:bg-blue-700 dark:bg-blue-600 dark:hover:bg-blue-800; }

  /* Violet — actions principales (payslip, workflows) */
  .btn-purple { @apply bg-tr-purple-800 hover:bg-tr-purple-900 dark:bg-tr-purple-700 dark:hover:bg-tr-purple-800; }

  /* Orange — actions techniques / outils internes */
  .btn-orange { @apply bg-orange-500 hover:bg-orange-600 dark:bg-orange-600 dark:hover:bg-orange-800; }

  /* Rouge foncé — actions destructives critiques */
  .btn-critical { @apply bg-red-600 hover:bg-red-700 dark:bg-red-700 dark:hover:bg-red-800; }

  /* Micro-boutons SILAE (fiches de paie) */
  .btn-silae { @apply text-white px-1 py-0.5 rounded text-xs cursor-pointer font-bold; }
  .btn-silae-export   { @apply bg-blue-500 hover:bg-blue-700; }
  .btn-silae-control  { @apply bg-green-500 hover:bg-green-700; }
  .btn-silae-sync     { @apply bg-yellow-300 hover:bg-yellow-500; }
  .btn-silae-payments { @apply bg-orange-500 hover:bg-orange-700; }
  .btn-silae-pdf      { @apply bg-red-600 hover:bg-red-800; }

  /* ========================================== */

  button.step_up,
  button.step_down {
    @apply text-white;
    @apply hover:bg-tr-purple-900 dark:hover:bg-tr-purple-800;
    @apply bg-tr-purple-800 dark:bg-tr-purple-700;
    @apply p-2;
  }

  .button_to {
    @apply mb-1
  }

  button.neutral {
    @apply text-white;
    @apply bg-tr-purple-800 dark:bg-tr-purple-700;
    @apply hover:bg-tr-purple-900 dark:hover:bg-tr-purple-800;
  }

  .sideBar-menu {
    @apply rounded;
    @apply pl-1 lg:pl-2;
    @apply flex items-center w-full;
    @apply transition duration-75;
    @apply focus:outline-none;
    color: var(--color-menu-text);
    background-color: transparent;
  }

  .dark .sideBar-menu {
    color: var(--color-menu-text-dark);
  }

  .sideBar-menu {
    @apply hover:text-white;
  }

  .sideBar-menu:hover {
    background-color: var(--color-primary);
  }

  .sidebar-dropDownMenu {
    @apply flex flex-col gap-2;
    @apply pl-5;
  }

  .sideBar-subMenu {
    @apply pl-1 mdlg:pl-2 lg:pl-4 xl:pl-6;
    @apply text-xs lg:text-sm;
    @apply font-light lg:font-normal;
    @apply hover:font-extrabold;
    @apply focus:outline-none;
    color: var(--color-menu-sub-text) !important;
  }

  .dark .sideBar-subMenu {
    color: var(--color-menu-sub-text-dark) !important;
  }

  a.sideBar-menu {
  color: var(--color-menu-text) !important;
  }
  .dark a.sideBar-menu {
    color: var(--color-menu-text-dark) !important;
  }

  a.sideBar-subMenu {
    @apply pl-0;
    color: var(--color-menu-sub-text);
  }

  .dark a.sideBar-subMenu {
    color: var(--color-menu-sub-text-dark);
  }

  .sideBar-subMenu:hover {
    color: var(--color-primary);
  }

  button.table-link-delete {
    @apply font-semibold;
    @apply p-0;
    @apply text-red-500 dark:text-red-400;
    background-color: transparent;
    @apply hover:bg-transparent dark:hover:bg-transparent;
    @apply hover:text-red-700 dark:hover:text-red-500;
  }

  /* Bouton icône — fond transparent, pas de padding */
  button.btn-icon,
  .dark button.btn-icon {
    background-color: transparent;
    color: #6b7280; /* gray-500 */
    @apply hover:bg-transparent p-0 shadow-none transition-colors duration-200;
  }

  .dark button.btn-icon {
    color: #d1d5db; /* gray-300 */
  }

  button.btn-icon:hover,
  .dark button.btn-icon:hover {
    color: var(--color-primary);
  }

  /* Force le SVG injecté à hériter la couleur du bouton (écrase les classes hardcodées du SVG source) */
  button.btn-icon svg {
    color: inherit;
  }

  /*
  * Les labels de type "button"
  */
  label.label-button {
    @apply rounded;
    font-size: clamp(0.65rem, 1.8vw, 0.8rem);
    padding: clamp(0.25rem, 0.8vw, 0.4rem) clamp(0.5rem, 1.5vw, 0.85rem);
    @apply font-bold text-center;
    @apply text-black dark:text-white;
    @apply hover:cursor-pointer;
    @apply hover:text-yellow-200;
    @apply dark:hover:text-yellow-200;
    @apply focus:outline-none;
  }

  label.label-button {
    @apply text-white;
    @apply bg-tr-purple-800 dark:bg-tr-purple-700;
    @apply hover:bg-tr-purple-900 dark:hover:bg-tr-purple-800;
  }

  /*
  * Les champs input[type="text"]
  */
  input[type="text"],
  input[type="email"],
  input[type="password"] {
    /* Styles generiques pour tous les input[type="text"] */
    @apply block w-full;
    @apply h-8 box-border;
    @apply rounded border border-gray-300 dark:border-gray-600;
    @apply text-sm font-normal md:text-sm;
    @apply text-gray-500 dark:text-gray-300;
    @apply placeholder-gray-400 dark:placeholder-gray-500;
    @apply bg-gray-50 dark:bg-gray-700;
  }

  input[type="text"],
  input[type="email"],
  input[type="password"] {
    @apply focus:ring-tr-purple-400 dark:focus:ring-tr-purple-600;
  }

  input[type="text"].date-field {
    @apply px-7;
  }

  /*
  * Les champs
  */
  textarea {
    /* Styles génériques pour tous les input[type="text"] */
    @apply block w-full;
    @apply box-border;
    @apply rounded border border-gray-300 dark:border-gray-600;
    @apply text-sm font-normal md:text-sm;
    @apply text-gray-500 dark:text-gray-300;
    @apply placeholder-gray-400 dark:placeholder-gray-500;
    @apply bg-gray-50 dark:bg-gray-700;
  }

  /*
  * Les champs input[type="text"] de classe "flying"
  */
  input[type="text"].flying,
  input[type="email"].flying,
  input[type="password"].flying {
    @apply rounded-none;
    @apply border-0 border-b-2;
    @apply bg-transparent px-0 py-2.5;
    @apply focus:outline-none focus:ring-0;
  }

  input[type="text"].flying,
  input[type="email"].flying,
  input[type="password"].flying {
    @apply focus:border-tr-purple-400 dark:focus:border-tr-purple-600;
  }

  /*
  * Les champs input[type="number"]
  */
  input[type="number"] {
    @apply block w-full p-1;
    @apply h-8 box-border;
    @apply rounded border border-gray-300 dark:border-gray-600;
    @apply bg-gray-50 dark:bg-gray-700;
    @apply text-sm text-gray-500 dark:text-gray-300;
    @apply text-sm font-normal;
    @apply placeholder-gray-400 dark:placeholder-gray-500;
  }

  input[type="number"] {
    @apply focus:ring-tr-purple-400 dark:focus:ring-tr-purple-600;
    @apply focus:border-tr-purple-400 dark:focus:border-tr-purple-600;
  }

  /**
  * Les champs input[type="date"]
  */
  input[type="date"] {
    @apply block w-full;
    @apply h-8 box-border;
    @apply rounded-sm border border-gray-300 dark:border-gray-600;
    @apply bg-gray-50 dark:bg-gray-700;
    @apply text-sm font-normal text-gray-500 dark:text-gray-500;
    @apply placeholder-gray-400 dark:placeholder-gray-500;
  }

  input[type="date"] {
    @apply focus:ring-tr-purple-400 dark:focus:ring-tr-purple-600;
    @apply focus:border-tr-purple-400 dark:focus:border-tr-purple-600;
  }

  /**
  * les champs select
  */
  select {
    @apply block w-full p-1 px-3;
    @apply rounded border border-gray-300 dark:border-gray-600;
    @apply h-8 box-border;
    @apply bg-gray-50 dark:bg-gray-700;
    @apply text-sm text-gray-500 dark:text-gray-300;
    @apply placeholder-gray-400 dark:placeholder-gray-500;
  }

  div.selectize-input.items.full.has-options.has-items {
    @apply block w-full p-1;
    @apply rounded border border-gray-300 dark:border-gray-600;
    @apply h-auto;
    @apply box-border bg-gray-50 dark:bg-gray-700;
    @apply text-sm text-gray-900 dark:text-white;
    @apply placeholder-gray-300 dark:placeholder-gray-400;
    @apply shadow-none;
    @apply whitespace-normal overflow-visible break-words;
    @apply flex items-start flex-wrap;
  }
  div.selectize-input.not-full > input[type="select-one"] {
    width: 100% !important;
  }

  select {
    @apply focus:ring-tr-purple-400 dark:focus:ring-tr-purple-600;
    @apply focus:border-tr-purple-400 dark:focus:border-tr-purple-600;
  }

  /*
  * Les labels
  */

  tr.subheader>label.value,
  tr.subheader>th>div>div>div>label.value,
  tr.subheader>th>div {
    @apply text-gray-500 dark:text-gray-200;
    @apply font-bold;
    @apply text-sm;
    @apply break-words;
  }

  label {
    @apply block;
    @apply text-sm font-medium;
    @apply text-gray-900 dark:text-white;
    @apply break-words;
  }

  label.small {
    @apply text-xs font-normal;
  }

  label.large {
    @apply text-base font-medium;
  }

  label.title {
    @apply mb-2;
    @apply font-semibold text-lg md:text-xl;
    /* @apply text-red-800 dark:text-white; */
  }

  label.title {
    color: var(--color-page-title);
  }

  .dark label.title {
    color: var(--color-page-title-dark);
  }

  .page-title {
    @apply mt-4;
    @apply text-2xl font-semibold;
    @apply lg:text-3xl lg:font-bold;
  }

  .page-title {
    color: var(--color-page-title);
  }

  .dark .page-title {
    color: var(--color-page-title-dark);
  }

  label.field {
    @apply text-gray-700 dark:text-gray-300;
    @apply font-normal lg:font-medium;
    @apply text-sm;
  }

  label.value {
    @apply text-gray-500 dark:text-gray-200;
    @apply font-normal;
    @apply text-sm;
  }

  label.value-large {
    @apply text-gray-500 dark:text-gray-200;
    @apply text-lg font-normal;
  }

  label.error {
    @apply text-red-500;
  }

  /*
  * Les balises Textare
  */

  textarea {
    @apply block w-full p-2;
    @apply rounded border;
  }

  textarea {
    @apply focus:ring-tr-purple-400 dark:focus:ring-tr-purple-600;
    @apply focus:border-tr-purple-400 dark:focus:border-tr-purple-600;
  }

  /*
  * Les balises <li>
  */

  li.menu_separator {
    @apply mdlg:mx-2 lg:mx-0;
    @apply border border-t;
  }

  li.menu_separator {
    border-color: var(--color-secondary);
  }
}

@layer utilities {
  .card-surface {
    background-color: var(--color-card-bg);
  }

  .dark .card-surface {
    background-color: var(--color-card-bg-dark);
  }

  .dashboard-card-surface {
    background-color: color-mix(in srgb, var(--color-card-bg) 88%, var(--color-primary) 12%);
  }

  .dark .dashboard-card-surface {
    background-color: color-mix(in srgb, var(--color-card-bg-dark) 86%, var(--color-primary-dark) 14%);
  }

  .panel-surface {
    background-color: var(--color-sidebar-bg);
  }

  .dark .panel-surface {
    background-color: var(--color-sidebar-bg-dark);
  }

  /* Dark mode : cellules de tableaux dans les encarts info congés maternité */
  .dark [data-maternity-info-container] table td {
    color: #d1d5db; /* gray-300 */
  }

  div.card-type-1 {
    @apply p-2 lg:p-4 lg:gap-2;
    @apply rounded-lg;
    background-color: var(--color-card-bg);
    @apply border border-slate-100 dark:border-slate-600;
    @apply shadow-md dark:shadow-none;
  }

  .dark div.card-type-1 {
    background-color: var(--color-card-bg-dark);
    box-shadow: 0 2px 12px 0 color-mix(in srgb, var(--color-primary) 30%, transparent), inset 0 1px 0 rgba(255, 255, 255, 0.05);
  }

  div.card-type-bg-slate-100 {
    @apply p-2 lg:p-4 lg:gap-2;
    @apply rounded-lg;
    @apply bg-slate-100 dark:bg-slate-700;
    @apply border border-slate-100 dark:border-slate-800;
    @apply shadow-md shadow-sky-200/20;
  }

  div.card-type-abandoned {
    @apply p-2 lg:p-4 lg:gap-4;
    @apply rounded-lg;
    @apply bg-red-50 dark:bg-red-950;
    @apply border border-red-500 dark:border-slate-400;
    @apply shadow-md;
  }

  .bg-radial-gradient {
    @apply bg-[radial-gradient(circle_at_center, _var(--tw-gradient-stops))] from-tr-purple-600 to-50% backdrop-blur-sm backdrop-opacity-10;
  }

  div.card-type-admin {
    @apply rounded-2xl p-2 lg:p-4 gap-2 lg:gap-4;
    @apply bg-gradient-to-tr from-orange-400 via-orange-300 via-60% to-orange-600/60;
    @apply dark:bg-gradient-to-tr dark:from-orange-600 dark:via-orange-400 dark:via-60% dark:to-orange-700;
  }

  .breadscrumb-link {
    @apply font-medium text-sm;
    @apply whitespace-nowrap;
  }

  .breadscrumb-raw {
    @apply font-normal text-sm;
    @apply text-black dark:text-white;
  }

  .breadscrumb-link {
    color: var(--color-primary);
  }

  .dark .breadscrumb-link {
    color: var(--color-secondary-dark);
  }

  .breadcrumb-home-icon:hover {
    color: var(--color-primary);
  }

  .dark .breadcrumb-home-icon:hover {
    color: var(--color-secondary-dark);
  }

  .sidebar-logout-icon {
    @apply cursor-pointer rounded-full w-8 h-8;
    @apply text-black dark:text-gray-300;
  }

  .sidebar-logout-icon:hover {
    color: theme('colors.red.500');
  }

  .sidebar-logout-icon:focus {
    color: theme('colors.red.500');
    outline: none;
  }

  .cell-data--money {
    @apply text-right;
  }

  .cell-data--money label.value{
    @apply whitespace-nowrap;
  }

  div.modal_fixed_centered_div {
    @apply fixed inset-0;
    @apply flex items-center justify-center;
    @apply bg-black bg-opacity-50;
    @apply z-50;
  }

  /* Elements for Expense Funnel Mileage Steps */
  div.mileage_steps {
    @apply flex flex-col col-span-1 lg:col-span-2;
    @apply gap-2;
  }

  div.mileage_step_line,
  div.mileage_step_line_header {
    @apply flex flex-row gap-2 w-full;
  }


  div.mileage_step_line_header>label.step_number,
  div.mileage_step_line>input.step_number,
  div.mileage_step_line>div.step_number_controls {
    @apply w-1/12;
    @apply text-left;
  }

  div.mileage_step_line>label.distance_with_previous_step_readonly,
  div.mileage_step_line>div.distance_with_previous_step_readonly {
    @apply w-1/12;
    @apply text-center;
  }

  div.mileage_step_line_header>label.action,
  div.mileage_step_line_header>label.distance_with_previous_step_readonly {
    @apply text-right;
  }


  div.mileage_step_line_header>label.address,
  div.mileage_step_line>div.address {
    @apply w-9/12;
  }

  div.canceled_watermark {
    @apply bg-no-repeat bg-center bg-contain;
    @apply bg-[url(/assets/icons/expense/fr_expense_cancelation_watermark.png)];
  }

  /* *********** */
}
.flex-wrap {
  flex-wrap: wrap;
}

/* ******************************************************************************************************************************************** */
/* Custom styles for field-unit__field and field-unit__label : pour les éléments de la gemme Administrate */
/* ******************************************************************************************************************************************** */
.field-unit__field, .field-unit__label {
  margin-left: 0 !important;
}

.field-unit__label {
  font-weight: 600 !important;
  font-size: .875rem !important;
  line-height: 1.25rem !important;
  text-align: left !important;
  margin-bottom: .5rem !important;
  width: 100% !important;
}

.field-unit__field select, .field-unit__field input {
  border-radius: 5px;
  line-height: 1.25rem;
}

/* Administrate-style form inputs - moved to application.tailwind.css */

/* ******************************************************************************************************************************************** */
/* Pour correctement centrer l'icon eye et eye-slash sur la page de login */
/* ******************************************************************************************************************************************** */
#toggle-password-visibility {
      top: 72%;
      right: 0.75rem;
      transform: translateY(-50%);
      padding: 0;
      margin: 0;
      display: flex;
      align-items: center;
      justify-content: center
}
#eye-icon, #eye-slash-icon {
  width: 1.5rem; /* Adjust size as needed */
  height: 1.5rem; /* Adjust size as needed */
}
#password-field {
  height: 2.5rem;
}

/* ******************************************************************************************************************************************** */
/* For Mozilla PDF.js viewer */
/* ******************************************************************************************************************************************** */
.document-canvas {
  background-color: rgba(0, 0, 0, 0.05);
  }

.document-loading-text {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background-color: rgba(0, 0, 0, 0.5);
  color: black;
  padding: 5px;
  border-radius: 3px;
}

/* Limiter la taille maximale de l'image */
.img-viewer {
  max-width: 100%;
  max-height: 60vh; /* 65% de la hauteur de la fenêtre */
  /* object-fit: contain; Pour s'assurer que l'image garde ses proportions */
}

/* Limiter la taille maximale du canvas */
.canvas-viewer {
  max-width: 100%;
  max-height: 65vh; /* 65% de la hauteur de la fenêtre */
}

/* Centrer le PDF dans le canvas */
.canvas-container {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100%;
  width: 100%;
}

/* ******************************************************************************************************************************************** */
/* Eléments de la page employee/show */
/* ******************************************************************************************************************************************** */
  [data-type="view-selector"] {
    color: white;
    font-weight: bold;
  }
  [data-type="view-selector"].selected {
    opacity: 1;
    border-color: black;
    pointer-events: none;
    outline: none; /* For focus state */
    background-color: #4299e1; /* Example color, adjust as needed */
  }

  [data-type="view-selector"].not-selected {
    opacity: 0.6;
    border-color: transparent;
    background-color: #718096; /* Example color, adjust as needed */
  }


/* ******************************************************************************************************************************************** */
/* TdS - Activity Report  */
/* ******************************************************************************************************************************************** */
  .calendar {
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: clamp(2px, 1vw, 6px);
  }

  /* make the last odd tile span full width (good for 3 tiles in 2-col grid) */
  .show-card-grid > :last-child:nth-child(odd) {
    grid-column: 1 / -1;
  }

  .show-card-grid > .card-type-1 {
    overflow-x: auto;
  }

  /* En-tetes jours de la semaine */
  .calendar > .calendar-day-header {
    text-align: center;
    font-size: clamp(0.5rem, 2vw, 0.85rem);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #6e50b2;
    border: none;
    padding: 6px 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
  }

  /* Cases jour (conteneur AM + PM) */
  .calendar > .calendar-day-cell {
    text-align: center;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    overflow: hidden;
    background-color: #fff;
    padding: 2px 0 4px;
  }

  /* Numero du jour */
  .calendar-day-cell .calendar-day-number {
    font-size: clamp(0.55rem, 2vw, 0.9rem);
    font-weight: 600;
    color: #374151;
    padding: 4px 0 3px;
    line-height: 1;
  }

  /* Slots AM/PM */
  div.calendar-slot {
    border-radius: 4px;
    margin: 2px 3px;
    transition: background-color 0.15s ease;
  }

  div.calendar-slot label {
    font-size: clamp(0.35rem, 1.5vw, 0.75rem);
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    padding: clamp(1px, 0.5vw, 3px) clamp(2px, 1vw, 6px);
  }

  /* Disabled state */
  div.disabled {
    background-color: #d4d5d6;
    opacity: 0.6;
  }

  .type_day_selector {
    font-family: 'Roboto', sans-serif;
    min-width: clamp(80px, 20vw, 120px);
    height: auto;
    padding: clamp(0.25rem, 1vw, 0.375rem) clamp(0.5rem, 1.5vw, 0.75rem);
    white-space: nowrap;
    text-align: center;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: clamp(11px, 2.5vw, 13px);
    font-weight: 500;
    border-radius: 6px;
    cursor: pointer;
    transition: all 0.2s ease-in-out;
    border: 2px solid transparent;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.12);
  }

  .type_day_selector:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.18);
  }

  /* 9 types de journees */
  [data-type-day="blank"] {
    background-color: white;
  }

  [data-type-day="public_holiday"],
  div.calendar-slot:has(>input[value="public_holiday"]) {
    background-color: #969BA7;
  }

  /* Jour travaillé */
  [data-type-day="working"]:not([data-no-style="true"]),
  [data-type-day="working"]:hover:not([data-no-style="true"]),
  div.calendar-slot:has(>input[value="working"]):not([data-no-style="true"]),
  div.calendar-slot:has(>input[value="working"]):hover:not([data-no-style="true"]) {
    background-color: #69BE28;
  }

  button.type_day_selector[data-type-day="working"] {
    background-color: #69BE28;
    color: #002244;
  }

  button.type_day_selector[data-type-day="working"][data-selected="true"] {
    border-color: #69BE28;
    box-shadow: 0 0 0 3px rgba(105, 190, 40, 0.2);
  }

  /* Télétravail */
  [data-type-day="teleworking"]:not([data-no-style="true"]),
  [data-type-day="teleworking"]:hover:not([data-no-style="true"]),
  div.calendar-slot:has(>input[value="teleworking"]):not([data-no-style="true"]),
  div.calendar-slot:has(>input[value="teleworking"]):hover:not([data-no-style="true"]) {
    background-color: #3a8ad1;
  }

  button.type_day_selector[data-type-day="teleworking"] {
    background-color: #3a8ad1;
    color: #002244;
  }

  button.type_day_selector[data-type-day="teleworking"][data-selected="true"] {
    border-color: #3a8ad1;
    box-shadow: 0 0 0 3px rgba(0, 76, 84, 0.2);
  }

  /* Congés payés */
  [data-type-day="paid_day_off"]:not([data-no-style="true"]),
  [data-type-day="paid_day_off"]:hover:not([data-no-style="true"]),
  div.calendar-slot:has(>input[value="paid_day_off"]):not([data-no-style="true"]),
  div.calendar-slot:has(>input[value="paid_day_off"]):hover:not([data-no-style="true"]) {
    background-color: #FFB612;
  }

  button.type_day_selector[data-type-day="paid_day_off"] {
    background-color: #FFB612;
    color: #000; /* texte noir pour meilleure lisibilité */
  }

  button.type_day_selector[data-type-day="paid_day_off"][data-selected="true"] {
    border-color: #FFB612;
    box-shadow: 0 0 0 3px rgba(179, 153, 93, 0.2);
  }

  /* Absences spécifiques (mapped from WorkStoppage.reason via WorkStoppage.css_class_for_reason) */
  div.calendar-slot.sick_leave:not([data-no-style="true"]),
  div.calendar-slot:has(>input[value="sick_leave"]):not([data-no-style="true"]),
  div.calendar-slot:has(>input[value="sick_leave"]):hover:not([data-no-style="sick_leave"])  {
    background-color: #ab0967;
  }

  div.calendar-slot.work_accident:not([data-no-style="true"]),
  div.calendar-slot:has(>input[value="work_accident"]):not([data-no-style="true"]),
  div.calendar-slot:has(>input[value="work_accident"]):hover:not([data-no-style="work_accident"])  {
    background-color: #eb094d;
  }

  div.calendar-slot.work_related_disease:not([data-no-style="true"]),
  div.calendar-slot:has(>input[value="work_related_disease"]):not([data-no-style="true"]),
  div.calendar-slot:has(>input[value="work_related_disease"]):hover:not([data-no-style="work_related_disease"])  {
    background-color: #eb094d;
  }

  div.calendar-slot.commuting_accident:not([data-no-style="true"]),
  div.calendar-slot:has(>input[value="commuting_accident"]):not([data-no-style="true"]),
  div.calendar-slot:has(>input[value="commuting_accident"]):hover:not([data-no-style="commuting_accident"])  {
    background-color: #eb094d;
  }

  div.calendar-slot.family_event_leave:not([data-no-style="true"]),
  div.calendar-slot:has(>input[value="family_event_leave"]):not([data-no-style="true"]),
  div.calendar-slot:has(>input[value="family_event_leave"]):hover:not([data-no-style="family_event_leave"])  {
    background-color: #b4a7d6;
  }

  div.calendar-slot.paternity_leave:not([data-no-style="true"]),
  div.calendar-slot:has(>input[value="paternity_leave"]):not([data-no-style="true"]),
  div.calendar-slot:has(>input[value="paternity_leave"]):hover:not([data-no-style="paternity_leave"])  {
    background-color: #674ea7;
  }

  div.calendar-slot.maternity_leave:not([data-no-style="true"]),
  div.calendar-slot:has(>input[value="maternity_leave"]):not([data-no-style="true"]),
  div.calendar-slot:has(>input[value="maternity_leave"]):hover:not([data-no-style="maternity_leave"])  {
    background-color: #fa52f2;
  }

  [data-type-day="rtt"]:not([data-no-style="true"]),
  [data-type-day="rtt"]:hover:not([data-no-style="true"]),
  div.calendar-slot:has(>input[value="rtt"]):not([data-no-style="true"]),
  div.calendar-slot:has(>input[value="rtt"]):hover:not([data-no-style="true"]) {
    background-color: #ffd966;  /* bleu */
  }

  button.type_day_selector[data-type-day="rtt"] {
    background-color: #ffd966;
    color: white;
  }

  button.type_day_selector[data-type-day="rtt"][data-selected="true"] {
    border-color: #ffd966;
    box-shadow: 0 0 0 3px rgba(93, 173, 244, 0.2);
  }

  /* Boutons utilitaires */
  button.type_day_selector--utility {
    background-color: #002244;
    color: white;
  }

  button.type_day_selector--utility:hover {
    background-color: #1a2840;
  }

  /* Bouton Réinitialiser - #AA0000 */
  button.type_day_selector--reset,
  .type_day_selector--reset > button {
    background-color: #AA0000;
    color: white;
  }

  button.type_day_selector--reset:hover,
  .type_day_selector--reset > button:hover {
    background-color: #880000;
  }

  [data-selected="true"]{
    outline-width: 1px;
    outline-color: #1f2937;
    outline-style: solid;
  }

  .hidden-scroll {
    -ms-overflow-style: none;
    scrollbar-width: none;
  }
  .hidden-scroll::-webkit-scrollbar {
    display: none;
  }

.scroll-shadow {
  box-shadow: 0px -10px 20px 15px var(--color-sidebar-bg, white);
  opacity: 0;
  transition: opacity 0.2s ease;
  pointer-events: none;
}

html.dark .scroll-shadow {
  box-shadow: 0px -10px 20px 15px var(--color-sidebar-bg-dark, #181818);
}

.scroll-shadow.is-visible {
  opacity: 1;
}

#mobile-sidebar-toggle,
#global-filter-button,
#site-icon-mobile {
  @media (max-width: 768px) {
    height: 66px;
  }
}

html:not(.dark) .bg-gray-50 input,
html:not(.dark) .bg-gray-50 .selectize-input,
html:not(.dark) .bg-gray-50 select {
  background-color: white !important;
}
/* @tailwind base;
@tailwind components;
@tailwind utilities; */

/* chart styles */
.apexcharts-tooltip {
  @apply bg-white dark:bg-gray-700 text-gray-500 dark:text-gray-400 border-0 rounded-lg shadow-lg !important;
}

.apexcharts-tooltip .apexcharts-tooltip-title {
  @apply py-2 px-4 bg-gray-100 dark:bg-gray-600 border-b border-gray-200 dark:border-gray-500 !important;
}

.apexcharts-xaxistooltip {
  @apply text-gray-500 border-0 bg-white dark:bg-gray-700 dark:text-gray-300 rounded-lg shadow-lg !important;
}

.apexcharts-tooltip .apexcharts-tooltip-text-y-value {
  @apply dark:text-white;
}

.apexcharts-xaxistooltip-text {
  @apply font-medium text-sm !important;
}

.apexcharts-xaxistooltip:before,
.apexcharts-xaxistooltip:after {
  @apply border-0 !important;
}

/* SVG map styles */
.svgMap-map-wrapper {
  @apply bg-white !important;
}

.svgMap-map-image {
  @apply dark:bg-gray-800;
}

.svgMap-map-controls-wrapper {
  @apply shadow-none left-0 bottom-0 dark:bg-gray-800 !important;
}

.svgMap-map-controls-zoom {
  @apply dark:bg-gray-800 !important;
}

.svgMap-map-wrapper .svgMap-control-button {
  @apply rounded-lg border-solid border border-gray-300 hover:bg-gray-100 dark:border-gray-600 dark:hover:bg-gray-600 !important;
}

.svgMap-map-wrapper .svgMap-control-button.svgMap-zoom-button:after,
.svgMap-map-wrapper .svgMap-control-button.svgMap-zoom-button:before {
  @apply dark:bg-gray-600 dark:hover:bg-gray-500;
}

.svgMap-map-wrapper .svgMap-control-button:first-child {
  @apply mr-2 !important;
}

.svgMap-tooltip {
  @apply bg-white dark:bg-gray-700 shadow-lg rounded-lg border-0 text-left !important;
}

.svgMap-tooltip
  .svgMap-tooltip-content-container
  .svgMap-tooltip-flag-container {
  @apply inline-block mr-2 text-left border-0 p-0 !important;
}

.svgMap-tooltip
  .svgMap-tooltip-content-container
  .svgMap-tooltip-flag-container
  .svgMap-tooltip-flag {
  @apply inline-block border-0 h-4 p-0 !important;
}

.svgMap-tooltip .svgMap-tooltip-title {
  @apply inline-block pt-2 text-gray-900 dark:text-white font-semibold text-sm !important;
}

.svgMap-tooltip .svgMap-tooltip-content {
  @apply mt-0 !important;
}

.svgMap-tooltip .svgMap-tooltip-content table td {
  @apply text-sm text-left text-gray-500 dark:text-gray-400 font-normal !important;
}

.svgMap-tooltip .svgMap-tooltip-content table td span {
  @apply text-sm text-left text-gray-900 dark:text-white font-semibold !important;
}

.svgMap-tooltip .svgMap-tooltip-pointer {
  @apply hidden !important;
}

.svgMap-map-wrapper .svgMap-country {
  @apply dark:stroke-gray-800;
}

/* kanban styles */

.drag-card {
  @apply opacity-100 !important;
  @apply rotate-6;
}

.ghost-card {
  @apply bg-gray-100/40 dark:bg-gray-600/40 !important;
}

/* calendar styles */

.fc .fc-toolbar {
  @apply flex-row-reverse justify-end px-4 !important;
}

.fc .fc-toolbar.fc-header-toolbar {
  @apply mb-5 !important;
}

.fc .fc-toolbar-title {
  @apply text-lg text-gray-900 font-semibold !important;
}

.fc .fc-today-button {
  @apply rounded-lg border border-gray-200 bg-white text-sm font-medium px-4 py-2 text-gray-900 hover:bg-gray-100 hover:text-primary-700 focus:z-10 focus:ring-2 focus:ring-primary-700 focus:text-primary-700 !important;
}

.fc-direction-ltr .fc-toolbar > * > :not(:first-child) {
  @apply mx-2 !important;
}

.fc .fc-button-group .fc-prev-button,
.fc .fc-button-group .fc-next-button {
  @apply bg-white border-0 text-gray-500 hover:text-gray-900 cursor-pointer p-2 hover:bg-gray-100 rounded inline-flex focus:bg-gray-100 focus:ring-1 focus:ring-gray-100 justify-center !important;
}

.fc .fc-scrollgrid {
  @apply border-l-0 border-gray-200 !important;
}

.fc .fc-daygrid-day-frame {
  @apply border-gray-200 !important;
}

.fc .fc-col-header-cell-cushion {
  @apply py-3 text-base text-gray-900 font-semibold !important;
}

.fc-theme-standard th {
  @apply border-0 border-b border-gray-200 !important;
}

.fc-direction-ltr .fc-daygrid-event.fc-event-end {
  @apply mr-2 !important;
}

.fc-direction-ltr .fc-daygrid-event.fc-event-start {
  @apply ml-2 !important;
}

.fc .fc-event .fc-event-main {
  @apply p-2 bg-primary-700 hover:bg-primary-800 !important;
}

.fc .fc-h-event .fc-event-main-frame {
  @apply text-xs font-semibold !important;
}

.fc .fc-daygrid-day-frame {
  @apply hover:bg-gray-50 cursor-pointer !important;
}

/* feed styles */

@media (min-width: 1280px) {
  .feed-container {
    height: calc(100vh - 4rem);
  }
}
.payslip-header-text { color: var(--color-table-header-text) !important; }
.dark .payslip-header-text { color: var(--color-table-header-text-dark) !important; }
.payslip-header-text-red { color: #ef4444 !important; }
.payslip-line-bg-slate { background-color: var(--color-table-stripe-bg) !important; }
.dark .payslip-line-bg-slate { background-color: var(--color-table-stripe-bg-dark) !important; }
.payslip-section-row { background-color: color-mix(in srgb, var(--color-secondary) 20%, white); }
.dark .payslip-section-row { background-color: color-mix(in srgb, var(--color-secondary) 20%, #1e293b); }
.payslip-text-red { color: #ef4444 !important; }
.payslip-text-blue { color: #1d4ed8 !important; }
.dark .payslip-text-blue { color: #93c5fd !important; }
.payslip-text-gray { color: #f3f4f6 !important; }

.payslip-hover-effect tr:not(.payslip-header-bg):hover td,
.payslip-hover-effect tr:not(.payslip-header-bg):hover th {
  background-color: #f3f4f6 !important; /* Couleur grise claire */
}
.dark .payslip-hover-effect tr:not(.payslip-header-bg):hover td,
.dark .payslip-hover-effect tr:not(.payslip-header-bg):hover th {
  background-color: #1e293b !important;
}

.contrib-table tr:nth-child(odd) {
  background-color: var(--color-table-stripe-bg);
}

.dark .contrib-table tr:nth-child(odd) {
  background-color: var(--color-table-stripe-bg-dark);
}

.contrib-table tr:nth-child(even) {
  background-color: var(--color-table-even-bg);
}

.dark .contrib-table tr:nth-child(even) {
  background-color: var(--color-table-even-bg-dark);
}

.title-banner-color {
  background-color: #ffc901;
  color: white;
}

.title-banner-border-color {
  border-color: #8a8889;
}

.section-title-color {
  color: #8a8889;
}

.highlight-color {
  color: #1a73e8;
}

.page-break {
  page-break-before: always;
}

footer {
  position: fixed;
  bottom: 0;
  width: 100%;
  background-color: #f8f9fa;
  padding: 10px;
  text-align: center;
  font-size: 0.8em;
  color: #6c757d;
  border-top: 1px solid #ccc;
}

.payslip-section-title {
  font-weight: bold;
  font-size: 1.5rem;
  margin-bottom: 0.75rem;
  border-left: 6px solid #ffc901;
  padding-left: 0.5rem;
  background:  #64748b;
  color: #fff;
  border-radius: 0.25rem;
  min-width: 200px;
  width: 100%;
  box-sizing: border-box;
  display: block;
}

.watermark {
  position: fixed;
  top: 50%;
  left: 50%;
  width: 100%;
  height: 100%;
  z-index: 0;
  pointer-events: none;
  opacity: 0.2;
  transform: translate(-50%, -50%) rotate(-30deg);
  display: flex;
  align-items: center;
  justify-content: center;
}

.watermark span {
  font-size: 5rem;
  color: #e3342f;
  font-weight: bold;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}
/*
 * This is a manifest file that'll be compiled into application.css, which will include all the files
 * listed below.
 *
 * Any CSS (and SCSS, if configured) file within this directory, lib/assets/stylesheets, or any plugin's
 * vendor/assets/stylesheets directory can be referenced here using a relative path.
 *
 * You're free to add application-wide styles to this file and they'll appear at the bottom of the
 * compiled file so the styles you add here take precedence over styles defined in any other CSS
 * files in this directory. Styles in this file should be added after the last require_* statement.
 * It is generally better to create a new file per style scope.
 *




 */
