@charset "UTF-8";
@import url("../../plugins/remixicon/remixicon.min.css");
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Geist+Mono:wght@400;500;600&display=swap');

/* =========================================================
   CASHTIMELY — Design System "Forest"
   Palette: sidebar vert forêt permanent #071815, contenu blanc cassé
   #F6F7F5 (light) / forêt #081714 (dark), accent menthe #1FE29B
   Typo: Inter (UI) · Geist Mono (code / technical labels)
   ========================================================= */

/* ─── Animations ──────────────────────────────────────────── */
@keyframes dropdown-menu-fade-in {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

@keyframes dropdown-menu-move-down {
  from {
    margin-top: -10px;
  }

  to {
    margin-top: 0;
  }
}

@keyframes dropdown-menu-move-up {
  from {
    margin-top: 10px;
  }

  to {
    margin-top: 0;
  }
}

@keyframes ct-pulse {

  0%,
  100% {
    opacity: 1;
  }

  50% {
    opacity: .7;
  }
}

/* =========================================================
   1. VARIABLES PALETTE DESIGN.md
   ========================================================= */
:root {
  /* Palette CASHTIMELY "Forest" — vert forêt quasi-noir + accent menthe */
  --palette-bg-primary-core: #171717;
  /* Near-black vert — texte, CTA fond */
  --palette-bg-tertiary-core: #5f5f5f;
  /* Gris-vert — pressed/hover */
  --palette-bg-primary-core-rgb: 13, 31, 27;
  --palette-text-primary: #171717;
  /* Near-black Regulatis */
  --palette-text-secondary: #5f5f5f;
  /* Gris Regulatis */
  --palette-text-tertiary: #8a8a8a;
  /* Gris clair */
  --palette-text-link: #171717;
  /* Liens = texte */
  --palette-bg-base: #ffffff;
  /* Blanc — cartes */
  --palette-bg-canvas: #fcfcfc;
  /* Regulatis clair — fond de page */
  --palette-surface-secondary: #f5f5f5;
  --palette-surface-tertiary: #fafafa;
  --palette-border-color: #e4e4e4;
  --palette-border-warm: #d4d4d4;
  --palette-dark-surface: #0C2420;
  /* Surface sombre (sidebar) */
  --palette-deep-dark: #071815;
  /* Vert forêt profond (sidebar) */
  --palette-coral: #111111;
  /* Accent noir */
  --palette-warm-silver: #7A8683;
  /* texte sur fond sombre */
  --palette-brand-green-light: #CFF7E4;
  --palette-brand-green-deep: #000000;

  /* Tokens sidebar — vert forêt permanent (identité, ne bascule pas avec le thème) */
  --palette-forest-950: #071815;
  --palette-forest-900: #0C2420;
  --palette-forest-800: #12332C;
  --palette-forest-700: #1A4A40;

  /* Ombres — douces, portées par la teinte forêt plutôt que le noir pur */
  --shadow-card: 0 1px 2px rgba(7, 24, 21, 0.04), 0 1px 0 rgba(7, 24, 21, 0.03);
  --shadow-hover: 0 12px 28px rgba(7, 24, 21, 0.10), 0 1px 0 rgba(7, 24, 21, 0.04);
  --shadow-ring: 0px 0px 0px 1px rgba(7, 24, 21, 0.08);
  --shadow-btn: rgba(7, 24, 21, 0.06) 0px 1px 2px;
  --shadow-subtle: rgba(7, 24, 21, 0.03) 0px 2px 4px;

  /* Typographie — Inter système Mintlify */
  --font-family-primary: 'Inter', system-ui, -apple-system, sans-serif;
  --font-family-serif: 'Georgia', 'Times New Roman', serif;
  --font-family-mono: 'Geist Mono', ui-monospace, SFMono-Regular, monospace;

  /* Tracking Mintlify */
  --tracking-display: -1.28px;
  /* 64px headlines */
  --tracking-heading: -0.8px;
  /* 40px section headings */
  --tracking-subhead: -0.24px;
  /* 24px sub-headings */
  --tracking-card: -0.2px;
  /* 20px card titles */
  --tracking-label: 0.65px;
  /* 13px uppercase labels */
  --tracking-mono: 0.6px;
  /* 12px mono badges */

  /* Border-radius scale — Mintlify (pill = signature) */
  --radius-subtle: 4px;
  --radius-standard: 8px;
  --radius-badge: 999px;
  --radius-card: 18px;
  --radius-large: 24px;
  --radius-hero: 32px;
  --radius-pill: 9999px;
  /* signature Mintlify */
  --radius-circle: 50%;

  /* Espacements */
  --spacing-1: 2px;
  --spacing-2: 4px;
  --spacing-3: 6px;
  --spacing-4: 8px;
  --spacing-5: 10px;
  --spacing-6: 12px;
  --spacing-7: 16px;
  --spacing-8: 22px;
  --spacing-9: 24px;
  --spacing-10: 32px;

  /* Transitions */
  --ct-transition: 150ms ease;

  /* Aliases Bootstrap */
  --bs-body-font-family: var(--font-family-primary);
  --bs-font-sans-serif: var(--font-family-primary);
}

/* =========================================================
   2. MODE LIGHT — tokens BS + corps
   ========================================================= */
[data-bs-theme=light] {
  --bs-body-bg: var(--palette-bg-canvas);
  --bs-body-color: var(--palette-text-primary);
  --bs-border-color: var(--palette-border-color);
  --bs-primary: var(--palette-bg-primary-core);
  --bs-link-color: var(--palette-text-link);
}

/* =========================================================
   3. MODE DARK — redéfinition tokens
   ========================================================= */
[data-bs-theme=dark] {
  color-scheme: dark;
  --palette-text-primary: #ededed;
  --palette-text-secondary: #a3a3a3;
  --palette-text-tertiary: #7a7a7a;
  --palette-bg-base: #1c1c1c;
  --palette-bg-canvas: #121212;
  --palette-surface-secondary: #262626;
  --palette-surface-tertiary: #1c1c1c;
  --palette-border-color: #2e2e2e;
  --palette-border-warm: #3a3a3a;
  --palette-coral: #ededed;
  --shadow-card: 0px 0px 0px 1px rgba(255, 255, 255, 0.08), rgba(0, 0, 0, 0.4) 0px 2px 4px;
  --shadow-hover: 0px 0px 0px 1px rgba(255, 255, 255, 0.12), rgba(0, 0, 0, 0.5) 0px 8px 32px;

  --bs-body-bg: var(--palette-bg-canvas);
  --bs-body-color: var(--palette-text-primary);
  --bs-border-color: var(--palette-border-color);
  --bs-primary: var(--palette-coral);
  --bs-link-color: var(--palette-coral);

  --bs-primary-text-emphasis: var(--palette-coral);
  --bs-secondary-text-emphasis: var(--palette-text-secondary);
  --bs-link-hover-color: #ffffff;
  --bs-border-color-translucent: rgba(255, 255, 255, .08);
}

/* =========================================================
   TYPOGRAPHIE UNIVERSELLE
   ========================================================= */
body,
html,
button,
input,
select,
textarea,
.btn,
.nav-link,
.dropdown-item,
.form-control,
.form-select,
.card,
.card-body,
.card-title,
.table,
.ew-grid,
.ew-table,
td,
th,
label,
p,
a,
.modal,
.modal-content,
.modal-body,
.dropdown-menu,
.alert,
.badge,
.list-group-item,
.breadcrumb,
.nav-header,
.content-header,
.ew-grid-upper-panel,
.ew-grid-lower-panel,
.ew-pager {
  font-family: var(--font-family-primary) !important;
}

h1,
h2,
h3,
h4,
h5,
h6,
.h1,
.h2,
.h3,
.h4,
.h5,
.h6,
.content-header h1,
.brand-text,
.kpi-val {
  font-weight: 600;
  letter-spacing: -0.01em;
  color: var(--palette-text-primary);
}

/* ─── Reset focus ─────────────────────────────────────────── */
.btn:focus,
.btn:active,
input.form-control:focus,
textarea.form-control:focus,
select.form-select:focus,
span.select2-selection:focus,
.swal2-confirm:focus,
.swal2-cancel:focus {
  outline: none !important;
  box-shadow: none !important;
}

:focus-visible {
  outline: 2px solid var(--palette-coral) !important;
  outline-offset: 2px !important;
}

/* ─── Typographie — tracking Mintlify ────────────────────── */
h1,
.h1 {
  letter-spacing: var(--tracking-heading);
}

h2,
.h2 {
  letter-spacing: var(--tracking-subhead);
}

h3,
.h3 {
  letter-spacing: var(--tracking-subhead);
}

h4,
.h4 {
  letter-spacing: var(--tracking-card);
}

h5,
.h5,
h6,
.h6 {
  letter-spacing: var(--tracking-card);
}

/* Labels section uppercase — style Mintlify */
.nav-sidebar .nav-header,
.section-label,
[data-section-label],
.ew-grid .ew-grid-upper-panel label,
.filter-label {
  letter-spacing: var(--tracking-label);
  text-transform: none;
  font-size: 0.7rem;
  font-weight: 600;
}

/* Valeurs monospaced (montants, codes) */
.num,
.mono,
.kpi-val,
td[data-type="number"],
td[data-type="currency"],
.font-mono {
  font-family: var(--font-family-mono) !important;
  letter-spacing: var(--tracking-mono);
}

/* ─── Border-radius global ────────────────────────────────── */
.btn,
.modal-content,
.dropdown-menu,
.form-control:not(.form-control-navbar):not(.form-control-sidebar):not(.is-invalid):not(:focus),
.select2-container--bootstrap5 .select2-selection,
.form-select {
  border-radius: var(--radius-pill) !important;
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {

  *,
  *::before,
  *::after {
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
  }
}

/* =========================================================
   LIGHT MODE
   ========================================================= */

/* ─── Body light ──────────────────────────────────────────── */
[data-bs-theme=light] body {
  background-color: var(--palette-bg-canvas) !important;
  color: var(--palette-text-primary) !important;
}

[data-bs-theme=light] .content-wrapper,
[data-bs-theme=light] .content {
  background-color: var(--palette-bg-canvas) !important;
}

/* ─── Topbar light ────────────────────────────────────────── */
[data-bs-theme=light] .main-header,
[data-bs-theme=light] .main-header.navbar,
[data-bs-theme=light] .navbar {
  background-color: var(--palette-bg-base) !important;
  border-bottom: 1px solid var(--palette-border-color) !important;
  box-shadow: none !important;
}

[data-bs-theme=light] .main-header .nav-link,
[data-bs-theme=light] .navbar .nav-link,
[data-bs-theme=light] .main-header .navbar-nav .nav-link {
  color: var(--palette-text-secondary) !important;
  font-weight: 500;
  font-size: 14px;
  transition: color var(--ct-transition);
}

[data-bs-theme=light] .main-header .nav-link:hover,
[data-bs-theme=light] .navbar .nav-link:hover {
  color: var(--palette-coral) !important;
}

[data-bs-theme=light] .navbar-orange {
  background-color: var(--palette-bg-base) !important;
}

/* ─── Sidebar light — vert forêt permanent (identité de marque) ────
   La sidebar ne bascule PAS avec le thème clair/sombre : elle reste
   verte forêt quasi-noire dans les deux cas, comme sur les visuels
   de référence. Seul le contenu (cards, tableaux) bascule. ────────── */
[data-bs-theme=light] .main-sidebar,
[data-bs-theme=light] [class*="sidebar-dark-"],
[data-bs-theme=light] [class*="sidebar-light-"] {
  background: linear-gradient(180deg, var(--palette-forest-900) 0%, var(--palette-forest-950) 100%) !important;
  border-right: none !important;
  box-shadow: 1px 0 0 rgba(255, 255, 255, 0.04) inset !important;
}

[data-bs-theme=light] .brand-link {
  background: transparent !important;
  border-bottom: 0 !important;
}
/* Pas de filet sous le logo, quel que soit le thème (AdminLTE le pose dans adminlte.css) */
html body .main-sidebar .brand-link,
html body [class*=sidebar-light] .brand-link,
html body [class*=sidebar-dark] .brand-link {
  border-bottom: 0 !important;
}

[data-bs-theme=light] .brand-link .brand-text,
[data-bs-theme=light] .brand-link {
  color: #EAF7F1 !important;
}

[data-bs-theme=light] .nav-sidebar .nav-link {
  color: #C7DED7 !important;
  border-radius: var(--radius-standard) !important;
  margin: 1px 8px !important;
  font-size: 13px;
  transition: background var(--ct-transition), color var(--ct-transition);
}

[data-bs-theme=light] .nav-sidebar .nav-link:hover {
  background-color: var(--palette-forest-800) !important;
  color: #ffffff !important;
}

[data-bs-theme=light] .nav-sidebar .nav-link.active,
[data-bs-theme=light] [class*="sidebar-dark-"] .nav-treeview>.nav-item>.nav-link.active,
[data-bs-theme=light] [class*="sidebar-dark-"] .nav-treeview>.nav-item>.nav-link.active:hover {
  background-color: rgba(31, 226, 155, 0.16) !important;
  color: var(--palette-coral) !important;
  font-weight: 600 !important;
  box-shadow: inset 2px 0 0 var(--palette-coral);
}

[data-bs-theme=light] .nav-sidebar .nav-header {
  color: #6FA599 !important;
  font-size: 0.68rem;
  text-transform: none;
  letter-spacing: .08em;
  font-weight: 600;
}

[data-bs-theme=light] .nav-treeview .nav-link {
  padding-left: 2rem !important;
}

[data-bs-theme=light] .main-sidebar .form-control-sidebar,
[data-bs-theme=light] .main-sidebar .btn-sidebar {
  background: var(--palette-forest-800) !important;
  border-color: var(--palette-forest-700) !important;
  color: #EAF7F1 !important;
}

/* ─── Cards light ─────────────────────────────────────────── */
[data-bs-theme=light] .card,
[data-bs-theme=light] .modal-content {
  background-color: var(--palette-bg-base) !important;
  border: 1px solid var(--palette-border-color) !important;
  border-radius: var(--radius-card) !important;
  box-shadow: var(--shadow-card) !important;
  overflow: hidden !important;
}

[data-bs-theme=light] .dropdown-menu {
  background-color: var(--palette-bg-base) !important;
  border: 1px solid var(--palette-border-color) !important;
  border-radius: var(--radius-card) !important;
  box-shadow: var(--shadow-hover) !important;
}

[data-bs-theme=light] .card-header,
[data-bs-theme=light] .card-footer {
  background-color: var(--palette-surface-tertiary) !important;
  border-color: var(--palette-border-color) !important;
}

/* ─── KPI cards light ─────────────────────────────────────── */
[data-bs-theme=light] .small-box,
[data-bs-theme=light] .kpi-card {
  border-left: 3px solid var(--palette-coral) !important;
  border-radius: var(--radius-card) !important;
  box-shadow: var(--shadow-card) !important;
  transition: box-shadow var(--ct-transition), transform var(--ct-transition);
}

[data-bs-theme=light] .small-box:hover,
[data-bs-theme=light] .kpi-card:hover {
  box-shadow: var(--shadow-hover) !important;
  transform: translateY(-1px);
}

/* ─── Boutons light ───────────────────────────────────────── */
[data-bs-theme=light] .btn-primary,
[data-bs-theme=light] .btn.btn-primary.ew-btn,
[data-bs-theme=light] .ew-submit.btn-primary,
[data-bs-theme=light] .swal2-confirm.btn.btn-primary {
  background-color: var(--palette-coral) !important;
  border-color: var(--palette-coral) !important;
  color: var(--rg-primary-fg) !important;
  font-weight: 600 !important;
  transition: background var(--ct-transition), border-color var(--ct-transition);
  border-radius: var(--radius-pill) !important;
}

[data-bs-theme=light] .btn-primary:hover,
[data-bs-theme=light] .btn-primary:focus,
[data-bs-theme=light] .btn-primary:active {
  background-color: var(--palette-brand-green-deep) !important;
  border-color: var(--palette-brand-green-deep) !important;
  color: var(--rg-primary-fg) !important;
}

[data-bs-theme=light] .btn-default,
[data-bs-theme=light] .btn-secondary,
[data-bs-theme=light] .btn-light {
  background-color: var(--palette-bg-base) !important;
  border: 1px solid var(--palette-border-warm) !important;
  color: var(--palette-text-secondary) !important;
  transition: background var(--ct-transition), border-color var(--ct-transition);
  border-radius: var(--radius-pill) !important;
}

[data-bs-theme=light] .btn-default:hover,
[data-bs-theme=light] .btn-secondary:hover {
  background-color: var(--palette-surface-secondary) !important;
  border-color: var(--palette-border-warm) !important;
  color: var(--palette-text-primary) !important;
}

[data-bs-theme=light] .show>.btn-default,
[data-bs-theme=light] .btn-default.active,
[data-bs-theme=light] .btn-default:active {
  background-color: var(--palette-surface-secondary) !important;
  color: var(--palette-text-primary) !important;
}

/* ─── Formulaires light ───────────────────────────────────── */
[data-bs-theme=light] .form-control,
[data-bs-theme=light] .form-select,
[data-bs-theme=light] .select2-container--bootstrap5 .select2-selection {
  background-color: var(--palette-bg-base) !important;
  border: 1px solid var(--palette-border-warm) !important;
  color: var(--palette-text-primary) !important;
}

[data-bs-theme=light] .form-control:focus,
[data-bs-theme=light] .form-select:focus,
[data-bs-theme=light] .select2-container--bootstrap5.select2-container--focus .select2-selection {
  border-color: var(--palette-coral) !important;
  box-shadow: 0 0 0 1px var(--palette-coral), 0 0 0 3px rgba(31, 226, 155, 0.15) !important;
}

[data-bs-theme=light] .form-control::placeholder,
[data-bs-theme=light] textarea::placeholder {
  color: var(--palette-text-tertiary) !important;
  opacity: 1 !important;
}

[data-bs-theme=light] .was-validated .form-control:invalid:focus,
[data-bs-theme=light] .form-control.is-invalid:focus {
  border-color: #d45656 !important;
  box-shadow: none !important;
}

/* ─── Tables light ────────────────────────────────────────── */
[data-bs-theme=light] .ew-grid,
[data-bs-theme=light] .ew-card.ew-grid,
[data-bs-theme=light] .ew-grid.card {
  background: var(--palette-bg-base) !important;
  border: 1px solid var(--palette-border-color) !important;
  border-radius: var(--radius-card) !important;
  box-shadow: var(--shadow-card) !important;
  overflow: hidden !important;
}

[data-bs-theme=light] .ew-grid-upper-panel.card-header,
[data-bs-theme=light] .ew-grid-lower-panel.card-footer,
[data-bs-theme=light] .ew-grid .ew-grid-upper-panel,
[data-bs-theme=light] .ew-grid .ew-grid-lower-panel,
[data-bs-theme=light] .ew-grid-middle-panel,
[data-bs-theme=light] .ew-grid-content,
[data-bs-theme=light] .ew-list-form,
[data-bs-theme=light] .query-builder {
  background: var(--palette-surface-tertiary) !important;
  border-color: var(--palette-border-color) !important;
}

[data-bs-theme=light] .ew-grid .ew-table,
[data-bs-theme=light] .table.ew-table {
  background: var(--palette-bg-base) !important;
  border-color: var(--palette-border-color) !important;
}

[data-bs-theme=light] .ew-grid .ew-table>thead>tr>th,
[data-bs-theme=light] .table.ew-table>thead>tr>th {
  background-color: var(--palette-surface-tertiary) !important;
  color: var(--palette-text-secondary) !important;
  border-color: var(--palette-border-color) !important;
  font-weight: 600 !important;
  font-size: 0.8rem;
  text-transform: none;
  letter-spacing: .04em;
}

[data-bs-theme=light] .ew-grid .ew-table>tbody>tr>td,
[data-bs-theme=light] .table.ew-table>tbody>tr>td {
  color: var(--palette-text-primary) !important;
  border-color: var(--palette-border-color) !important;
}

[data-bs-theme=light] .ew-grid .ew-table.table-hover>tbody>tr:not(.expandable-body):hover>* {
  --bs-table-bg-state: rgba(31, 226, 155, 0.06) !important;
}

[data-bs-theme=light] .table.ew-table.table-head-fixed thead tr:nth-child(1) th {
  box-shadow: none;
}

/* ─── Pagination light ────────────────────────────────────── */
[data-bs-theme=light] .ew-pager .pagination .page-link,
[data-bs-theme=light] .ew-pager .pagination-sm .page-link {
  background: var(--palette-bg-base) !important;
  border: 1px solid var(--palette-border-warm) !important;
  color: var(--palette-text-secondary) !important;
  border-radius: 6px !important;
  min-width: 36px;
  height: 36px;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  transition: background var(--ct-transition), border-color var(--ct-transition);
}

[data-bs-theme=light] .ew-pager .pagination .page-item:first-child .page-link {
  border-top-left-radius: var(--radius-standard) !important;
  border-bottom-left-radius: var(--radius-standard) !important;
}

[data-bs-theme=light] .ew-pager .pagination .page-item:last-child .page-link {
  border-top-right-radius: var(--radius-standard) !important;
  border-bottom-right-radius: var(--radius-standard) !important;
}

[data-bs-theme=light] .ew-pager .pagination .page-link:hover {
  background: var(--palette-surface-secondary) !important;
  border-color: var(--palette-border-warm) !important;
  color: var(--palette-text-primary) !important;
}

[data-bs-theme=light] .ew-pager .pagination .page-item.active .page-link {
  background: var(--palette-coral) !important;
  border-color: var(--palette-coral) !important;
  color: #0d0d0d !important;
  font-weight: 600;
}

[data-bs-theme=light] .ew-pager .pagination .page-item.disabled .page-link {
  background: var(--palette-surface-tertiary) !important;
  border-color: var(--palette-border-color) !important;
  color: var(--palette-text-tertiary) !important;
}

/* ─── Select2 light ───────────────────────────────────────── */
[data-bs-theme=light] .select2-container--bootstrap5 .select2-dropdown .select2-results__option--selected,
[data-bs-theme=light] .select2-container--bootstrap5 .select2-dropdown .select2-results__option[aria-selected=true] {
  color: #0d0d0d !important;
  background-color: var(--palette-coral) !important;
}

[data-bs-theme=light] .select2-container--bootstrap5 .select2-dropdown .select2-results__option--highlighted {
  color: var(--palette-text-primary) !important;
  background-color: var(--palette-surface-secondary) !important;
}

/* ─── Footer light ────────────────────────────────────────── */
[data-bs-theme=light] .main-footer {
  background-color: var(--palette-bg-base) !important;
  border-top: 1px solid var(--palette-border-color) !important;
  color: var(--palette-text-tertiary) !important;
}

/* ─── Liens light ─────────────────────────────────────────── */
[data-bs-theme=light] a {
  color: var(--palette-text-link) !important;
}

[data-bs-theme=light] a:hover {
  color: var(--palette-coral) !important;
}

/* ─── Texte light ─────────────────────────────────────────── */
[data-bs-theme=light] .text-muted,
[data-bs-theme=light] .form-text,
[data-bs-theme=light] small {
  color: var(--palette-text-tertiary) !important;
}

/* ─── Onglets light ───────────────────────────────────────── */
.tab-content:not([data-bs-theme=dark]) {
  border: 1px solid var(--palette-border-color);
  background-color: var(--palette-bg-base);
  margin-bottom: 20px;
  padding: 10px;
}

[data-bs-theme=light] .tab-pane {
  background-color: var(--palette-bg-base) !important;
}

/* ─── Grille light ────────────────────────────────────────── */
body:not([data-bs-theme=dark]) .ew-grid {
  border-color: var(--palette-border-warm) !important;
}

[data-bs-theme=light] .ew-grid-upper-panel.card-header,
[data-bs-theme=light] .ew-grid.ew-grid-upper-panel,
[data-bs-theme=light] .ew-grid-lower-panel.card-footer,
[data-bs-theme=light] .ew-grid.ew-grid-lower-panel {
  padding: 0.4rem;
  border-left: 0;
  border-right: 0;
}

/* =========================================================
   DARK MODE
   ========================================================= */

/* ─── Body dark ───────────────────────────────────────────── */
[data-bs-theme=dark] body,
[data-bs-theme=dark] .content-wrapper,
[data-bs-theme=dark] .content {
  background-color: var(--palette-bg-canvas) !important;
  color: var(--palette-text-primary) !important;
}

/* ─── Topbar dark ─────────────────────────────────────────── */
[data-bs-theme=dark] .main-header,
[data-bs-theme=dark] .main-header.navbar,
[data-bs-theme=dark] .navbar {
  background-color: var(--palette-bg-base) !important;
  border-bottom: 1px solid var(--palette-border-color) !important;
  box-shadow: none !important;
}

[data-bs-theme=dark] .main-header .nav-link,
[data-bs-theme=dark] .navbar .nav-link {
  color: var(--palette-text-secondary) !important;
  font-weight: 500;
  font-size: 14px;
  transition: color var(--ct-transition);
}

[data-bs-theme=dark] .main-header .nav-link:hover,
[data-bs-theme=dark] .navbar .nav-link:hover {
  color: var(--palette-coral) !important;
}

/* ─── Sidebar dark — identique au light : vert forêt permanent ─── */
[data-bs-theme=dark] .main-sidebar,
[data-bs-theme=dark] [class*="sidebar-dark-"] {
  background: linear-gradient(180deg, var(--palette-forest-900) 0%, var(--palette-forest-950) 100%) !important;
  border-right: none !important;
  box-shadow: 1px 0 0 rgba(255, 255, 255, 0.04) inset !important;
}

[data-bs-theme=dark] .brand-link {
  background: transparent !important;
  border-bottom: 0 !important;
}

[data-bs-theme=dark] .brand-link .brand-text,
[data-bs-theme=dark] .brand-link {
  color: #EAF7F1 !important;
}

[data-bs-theme=dark] .nav-sidebar .nav-link {
  color: #C7DED7 !important;
  border-radius: var(--radius-standard) !important;
  margin: 1px 8px !important;
  font-size: 13px;
  transition: background var(--ct-transition), color var(--ct-transition);
}

[data-bs-theme=dark] .nav-sidebar .nav-link:hover {
  background-color: var(--palette-forest-800) !important;
  color: #ffffff !important;
}

[data-bs-theme=dark] .nav-sidebar .nav-link.active,
[data-bs-theme=dark] [class*="sidebar-dark-"] .nav-treeview>.nav-item>.nav-link.active,
[data-bs-theme=dark] [class*="sidebar-dark-"] .nav-treeview>.nav-item>.nav-link.active:hover {
  background-color: rgba(31, 226, 155, 0.16) !important;
  color: var(--palette-coral) !important;
  font-weight: 600 !important;
  box-shadow: inset 2px 0 0 var(--palette-coral);
}

[data-bs-theme=dark] .nav-sidebar .nav-header {
  color: #6FA599 !important;
  font-size: 0.68rem;
  text-transform: none;
  letter-spacing: .08em;
  font-weight: 600;
}

[data-bs-theme=dark] .main-sidebar .form-control-sidebar,
[data-bs-theme=dark] .main-sidebar .btn-sidebar {
  background: var(--palette-forest-800) !important;
  border-color: var(--palette-forest-700) !important;
  color: #EAF7F1 !important;
}

/* ─── Cards dark ──────────────────────────────────────────── */
[data-bs-theme=dark] .card,
[data-bs-theme=dark] .modal-content {
  background-color: var(--palette-bg-base) !important;
  border: 1px solid var(--palette-border-color) !important;
  border-radius: var(--radius-card) !important;
  box-shadow: var(--shadow-card) !important;
  overflow: hidden !important;
}

[data-bs-theme=dark] .dropdown-menu {
  background-color: var(--palette-bg-base) !important;
  border: 1px solid var(--palette-border-color) !important;
  border-radius: var(--radius-card) !important;
  box-shadow: var(--shadow-hover) !important;
}

[data-bs-theme=dark] .card-header,
[data-bs-theme=dark] .card-footer {
  background-color: var(--palette-surface-secondary) !important;
  border-color: var(--palette-border-color) !important;
}

/* ─── KPI cards dark ──────────────────────────────────────── */
[data-bs-theme=dark] .small-box,
[data-bs-theme=dark] .kpi-card {
  border-left: 3px solid var(--palette-coral) !important;
  border-radius: var(--radius-card) !important;
  box-shadow: var(--shadow-card) !important;
  transition: box-shadow var(--ct-transition), transform var(--ct-transition);
}

[data-bs-theme=dark] .small-box:hover,
[data-bs-theme=dark] .kpi-card:hover {
  box-shadow: var(--shadow-hover) !important;
  transform: translateY(-1px);
}

/* ─── Boutons dark ────────────────────────────────────────── */
[data-bs-theme=dark] .btn,
[data-bs-theme=dark] .ew-toolbar .btn,
[data-bs-theme=dark] .ew-pager .btn {
  background-color: var(--palette-bg-base) !important;
  border: 1px solid var(--palette-border-warm) !important;
  color: var(--palette-text-secondary) !important;
  border-radius: var(--radius-pill) !important;
  box-shadow: none !important;
  font-size: 14px;
  transition: background var(--ct-transition), border-color var(--ct-transition), color var(--ct-transition);
}

[data-bs-theme=dark] .btn:hover,
[data-bs-theme=dark] .ew-toolbar .btn:hover,
[data-bs-theme=dark] .ew-pager .btn:hover {
  background-color: var(--palette-surface-secondary) !important;
  border-color: var(--palette-border-warm) !important;
  color: var(--palette-text-primary) !important;
}

[data-bs-theme=dark] .btn-primary,
[data-bs-theme=dark] .btn.btn-primary.ew-btn,
[data-bs-theme=dark] .ew-submit.btn-primary,
[data-bs-theme=dark] .swal2-confirm.btn.btn-primary {
  background-color: var(--palette-coral) !important;
  border-color: var(--palette-coral) !important;
  color: #06251E !important;
  font-weight: 600 !important;
  margin-right: 5px;
}


[data-bs-theme=dark] .btn-primary:hover,
[data-bs-theme=dark] .btn-primary:focus,
[data-bs-theme=dark] .ew-submit.btn-primary:hover {
  background-color: var(--palette-brand-green-deep) !important;
  border-color: var(--palette-brand-green-deep) !important;
  color: #ffffff !important;
}

[data-bs-theme=dark] .btn-secondary,
[data-bs-theme=dark] .btn-default {
  background-color: var(--palette-surface-secondary) !important;
  border-color: var(--palette-border-warm) !important;
  color: var(--palette-text-secondary) !important;
}

/* ─── Formulaires dark ────────────────────────────────────── */
[data-bs-theme=dark] .form-control,
[data-bs-theme=dark] .form-select,
[data-bs-theme=dark] .select2-container--bootstrap5 .select2-selection {
  background-color: var(--palette-surface-secondary) !important;
  border: 1px solid var(--palette-border-warm) !important;
  color: var(--palette-text-primary) !important;
  border-radius: var(--radius-pill) !important;
}

[data-bs-theme=dark] .form-control:focus,
[data-bs-theme=dark] .form-select:focus,
[data-bs-theme=dark] .select2-container--bootstrap5.select2-container--focus .select2-selection {
  border-color: var(--palette-coral) !important;
  box-shadow: 0 0 0 1px var(--palette-coral), 0 0 0 3px rgba(31, 226, 155, 0.2) !important;
}

[data-bs-theme=dark] .form-control::placeholder,
[data-bs-theme=dark] textarea::placeholder {
  color: var(--palette-text-tertiary) !important;
  opacity: 1 !important;
}

[data-bs-theme=dark] .select2-container--bootstrap5 .select2-selection--single .select2-selection__placeholder {
  color: var(--palette-text-tertiary) !important;
}

[data-bs-theme=dark] .select2-container--bootstrap5 .select2-selection--single {
  background-image: url(data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23888888' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e);
}

[data-bs-theme=dark] .select2-dropdown {
  background-color: var(--palette-bg-base) !important;
  border-color: var(--palette-border-warm) !important;
  color: var(--palette-text-primary) !important;
}

[data-bs-theme=dark] .select2-container--bootstrap5 .select2-dropdown .select2-results__option--selected,
[data-bs-theme=dark] .select2-container--bootstrap5 .select2-dropdown .select2-results__option[aria-selected=true] {
  color: #0d0d0d !important;
  background-color: var(--palette-coral) !important;
}

[data-bs-theme=dark] .select2-container--bootstrap5 .select2-search--dropdown .select2-search__field {
  background-color: var(--palette-surface-secondary) !important;
  border-color: var(--palette-border-warm) !important;
  color: var(--palette-text-primary) !important;
}

[data-bs-theme=dark] .was-validated .form-control:invalid:focus,
[data-bs-theme=dark] .form-control.is-invalid:focus {
  border-color: #d45656 !important;
  box-shadow: none !important;
}

/* Boutons unifiés, style Supabase : mêmes règles pour les pages, les boîtes modales et les confirmations */
html body .btn-primary,
html body .btn.btn-primary.ew-btn,
html body .ew-submit.btn-primary,
html body .swal2-confirm,
html body .alertify .ajs-footer .ajs-button.btn-primary {
  min-height: 26px;
  padding: 4px 10px;
  font-size: 13px;
  font-weight: 500 !important;
  background-color: var(--rg-primary) !important;
  border-color: var(--rg-primary) !important;
  color: var(--rg-primary-fg) !important;
  border-radius: 6px !important;
  box-shadow: var(--rg-shadow-raised);
}

html body .btn-primary:hover:not(:disabled),
html body .btn-primary:focus,
html body .btn-primary:active,
html body .swal2-confirm:hover {
  opacity: .88;
}

html body .btn-sec,
html body .btn-default,
html body .btn-secondary,
html body .btn-outline-secondary,
html body .btn-light,
html body .btn-discret,
html body .btn-cancel,
html body .swal2-cancel,
html body .alertify .ajs-footer .ajs-button:not(.btn-primary) {
  min-height: 26px;
  padding: 4px 10px;
  font-size: 13px;
  font-weight: 500 !important;
  background-color: var(--rg-btn-bg) !important;
  border-color: var(--rg-btn-border) !important;
  color: var(--palette-text-primary) !important;
  border-radius: 6px !important;
  box-shadow: var(--rg-shadow-raised);
}

/* Boutons des confirmations : même rayon et même hauteur pour Confirmer et Annuler */
html body .swal2-popup .swal2-actions .swal2-styled.swal2-confirm,
html body .swal2-popup .swal2-actions .swal2-styled.swal2-cancel {
  border-radius: 6px !important;
  border: 1px solid !important;
  height: 32px !important;
  padding: 0 12px !important;
}

/* Tables natives : cellules à la même taille que les tables workspace */
html body .ew-table > tbody > tr > td {
  font-size: .8rem;
}

/* Boutons natifs PHPMaker : même hauteur, même police et même rayon que les boutons workspace */
html[data-bs-theme] body .btn.btn-default,
html[data-bs-theme] body .btn-group .btn,
html[data-bs-theme] body .btn-group-sm .btn,
html[data-bs-theme] body .btn.ew-btn,
html[data-bs-theme] body .btn.btn-primary.ew-btn,
html[data-bs-theme] body .btn.btn-secondary.ew-btn,
html[data-bs-theme] body .ew-pager .btn {
  height: 32px !important;
  min-height: 32px !important;
  padding: 0 12px !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  border-radius: 6px !important;
}

[data-bs-theme=dark] .swal2-validation-message {
  background: transparent;
  color: var(--palette-text-secondary);
}

/* ─── Tables dark ─────────────────────────────────────────── */
[data-bs-theme=dark] .ew-grid,
[data-bs-theme=dark] .ew-card.ew-grid,
[data-bs-theme=dark] .ew-grid.card,
[data-bs-theme=dark] .card.ew-card {
  background-color: var(--palette-bg-base) !important;
  border: 1px solid var(--palette-border-color) !important;
  border-radius: var(--radius-card) !important;
  box-shadow: var(--shadow-card) !important;
  overflow: hidden !important;
}

[data-bs-theme=dark] .ew-grid-upper-panel.card-header,
[data-bs-theme=dark] .ew-grid-lower-panel.card-footer,
[data-bs-theme=dark] .ew-grid .ew-grid-upper-panel,
[data-bs-theme=dark] .ew-grid .ew-grid-lower-panel,
[data-bs-theme=dark] .ew-grid-middle-panel,
[data-bs-theme=dark] .ew-grid-content,
[data-bs-theme=dark] .ew-list-form,
[data-bs-theme=dark] .query-builder {
  background-color: var(--palette-surface-secondary) !important;
  border-color: var(--palette-border-color) !important;
  color: var(--palette-text-secondary) !important;
}

[data-bs-theme=dark] .ew-grid .ew-table,
[data-bs-theme=dark] .table.ew-table {
  background-color: var(--palette-bg-base) !important;
  border-color: var(--palette-border-color) !important;
}

[data-bs-theme=dark] .ew-grid .ew-table>thead>tr>th,
[data-bs-theme=dark] .table.ew-table>thead>tr>th {
  background-color: var(--palette-surface-secondary) !important;
  color: var(--palette-text-secondary) !important;
  border-color: var(--palette-border-color) !important;
  font-weight: 600 !important;
  font-size: 0.8rem;
  text-transform: none;
  letter-spacing: .04em;
}

[data-bs-theme=dark] .ew-grid .ew-table>tbody>tr>td,
[data-bs-theme=dark] .table.ew-table>tbody>tr>td {
  background-color: var(--palette-bg-base) !important;
  color: var(--palette-text-primary) !important;
  border-color: var(--palette-border-color) !important;
}

[data-bs-theme=dark] .ew-grid .ew-table>tbody>tr:nth-child(even)>td {
  background-color: var(--palette-surface-tertiary) !important;
}

[data-bs-theme=dark] .ew-grid .ew-table.table-hover>tbody>tr:not(.expandable-body):hover>* {
  --bs-table-bg-state: rgba(31, 226, 155, 0.08) !important;
}

[data-bs-theme=dark] .ew-toolbar,
[data-bs-theme=dark] .btn-toolbar,
[data-bs-theme=dark] .ew-pager,
[data-bs-theme=dark] .input-group {
  background-color: transparent !important;
}

[data-bs-theme=dark] .ew-pager {
  color: var(--palette-text-secondary) !important;
}

/* ─── Tables BS dark ──────────────────────────────────────── */
[data-bs-theme=dark] .table {
  --bs-table-color: var(--palette-text-primary);
  --bs-table-bg: var(--palette-bg-base);
  --bs-table-border-color: var(--palette-border-color);
  --bs-table-striped-bg: var(--palette-surface-secondary);
  --bs-table-striped-color: var(--palette-text-primary);
  --bs-table-hover-bg: var(--palette-surface-secondary);
  --bs-table-hover-color: var(--palette-text-primary);
  color: var(--bs-table-color);
  border-color: var(--bs-table-border-color);
}

[data-bs-theme=dark] .table-bordered,
[data-bs-theme=dark] .table-bordered td,
[data-bs-theme=dark] .table-bordered th {
  border-color: var(--palette-border-color) !important;
}

[data-bs-theme=dark] .table-hover tbody tr:hover {
  color: var(--palette-text-primary);
  background-color: var(--palette-surface-secondary);
}

[data-bs-theme=dark] .table thead th {
  border-bottom-color: var(--palette-border-warm) !important;
}

[data-bs-theme=dark] .table th,
[data-bs-theme=dark] .table td {
  border-top-color: var(--palette-border-color) !important;
}

[data-bs-theme=dark] .table.table-head-fixed thead tr:nth-child(1) th {
  background-color: var(--palette-surface-secondary) !important;
}

/* ─── Pagination dark ─────────────────────────────────────── */
[data-bs-theme=dark] .ew-pager .pagination .page-link,
[data-bs-theme=dark] .ew-pager .pagination-sm .page-link {
  background: var(--palette-surface-secondary) !important;
  border: 1px solid var(--palette-border-warm) !important;
  color: var(--palette-text-secondary) !important;
  border-radius: 6px !important;
  min-width: 36px;
  height: 36px;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  transition: background var(--ct-transition), border-color var(--ct-transition);
}

[data-bs-theme=dark] .ew-pager .pagination .page-item:first-child .page-link {
  border-top-left-radius: var(--radius-standard) !important;
  border-bottom-left-radius: var(--radius-standard) !important;
}

[data-bs-theme=dark] .ew-pager .pagination .page-item:last-child .page-link {
  border-top-right-radius: var(--radius-standard) !important;
  border-bottom-right-radius: var(--radius-standard) !important;
}

[data-bs-theme=dark] .ew-pager .pagination .page-link:hover,
[data-bs-theme=dark] .ew-pager .pagination-sm .page-link:hover {
  background: var(--palette-surface-tertiary) !important;
  color: var(--palette-text-primary) !important;
}

[data-bs-theme=dark] .ew-pager .pagination .page-item.active .page-link,
[data-bs-theme=dark] .ew-pager .pagination-sm .page-item.active .page-link {
  background: var(--palette-coral) !important;
  border-color: var(--palette-coral) !important;
  color: #0d0d0d !important;
  font-weight: 600;
}

[data-bs-theme=dark] .ew-pager .pagination .page-item.disabled .page-link,
[data-bs-theme=dark] .ew-pager .pagination-sm .page-item.disabled .page-link {
  background: var(--palette-surface-tertiary) !important;
  border-color: var(--palette-border-color) !important;
  color: var(--palette-text-tertiary) !important;
}

/* ─── Onglets dark ────────────────────────────────────────── */
[data-bs-theme=dark] .tab-content {
  border: 1px solid var(--palette-border-color);
  background-color: var(--palette-bg-base);
  margin-bottom: 20px;
  padding: 10px;
}

[data-bs-theme=dark] .tab-pane {
  background-color: var(--palette-bg-base) !important;
}

[data-bs-theme=dark] .ew-detail-pages .tab-content,
[data-bs-theme=dark] .ew-multi-page .tab-content,
[data-bs-theme=dark] .ew-preview .tab-content,
[data-bs-theme=dark] .ew-preview-overlay .tab-content,
[data-bs-theme=dark] .ew-preview-container .tab-content {
  background-color: var(--palette-bg-base) !important;
  border-color: var(--palette-border-color) !important;
}

[data-bs-theme=dark] .ew-preview-container {
  background-color: var(--palette-surface-secondary) !important;
  min-width: 500px;
}

[data-bs-theme=dark] body .ew-desktop-table,
[data-bs-theme=dark] body .ew-view-table,
[data-bs-theme=dark] div.ew-custom-template {
  background-color: var(--palette-bg-base) !important;
}

/* ─── Liens dark ──────────────────────────────────────────── */
[data-bs-theme=dark] a {
  color: var(--palette-coral) !important;
}

[data-bs-theme=dark] a:hover {
  color: #4ef5b8 !important;
}

/* ─── Texte dark ──────────────────────────────────────────── */
[data-bs-theme=dark] .text-muted,
[data-bs-theme=dark] .form-text,
[data-bs-theme=dark] small {
  color: var(--palette-text-tertiary) !important;
}

/* ─── Footer dark ─────────────────────────────────────────── */
[data-bs-theme=dark] .main-footer {
  background-color: var(--palette-bg-base) !important;
  border-top: 1px solid var(--palette-border-color) !important;
  color: var(--palette-text-tertiary) !important;
}

/* ─── Alertify dark ───────────────────────────────────────── */
[data-bs-theme=dark] .alertify .ajs-header,
[data-bs-theme=dark] .alertify .ajs-handle,
[data-bs-theme=dark] .ajs-content {
  color: var(--palette-text-secondary) !important;
}

/* ─── Popover ─────────────────────────────────────────────── */
[data-bs-theme=dark] .fc-popover,
[data-bs-theme=dark] .popover,
[data-bs-theme=dark] .fc-popover-header.popover-header {
  background-color: var(--palette-surface-secondary) !important;
  color: var(--palette-text-primary) !important;
}

[data-bs-theme=dark] .fc-popover-body.popover-body,
[data-bs-theme=dark] .popover-body {
  color: var(--palette-text-primary) !important;
}

.popover,
.popover-body .tab-content {
  font-family: inherit;
}

.popover {
  border-radius: var(--radius-card);
  background-color: var(--palette-bg-base) !important;
  border: 1px solid var(--palette-border-color);
}

.popover-header,
.fc-popover-header.popover-header {
  border-radius: 0;
}

/* ─── FullCalendar dark ───────────────────────────────────── */
[data-bs-theme=dark] .fc .fc-daygrid-day.fc-day-today {
  background-color: rgba(31, 226, 155, 0.08) !important;
}

[data-bs-theme=dark] .fc-list.fc-list-sticky,
[data-bs-theme=dark] .fc .fc-list-empty {
  border: 1px solid var(--palette-border-color);
  padding: 20px;
}

[data-bs-theme=dark] .fc-list-event-title {
  background-color: var(--palette-bg-base) !important;
}

[data-bs-theme=dark] .fc-theme-bootstrap5-shaded,
[data-bs-theme=dark] .fc-list-day-cushion.fc-theme-bootstrap5-shaded,
[data-bs-theme=dark] .fc-list-table {
  background-color: var(--palette-bg-base) !important;
}

[data-bs-theme=dark] .fc .fc-list-event td {
  background-color: var(--palette-surface-secondary) !important;
}

[data-bs-theme=dark] .fc .fc-list-event:hover td {
  background-color: var(--palette-surface-tertiary) !important;
}

[data-bs-theme=dark] .fc-scrollgrid.fc-scrollgrid-liquid,
[data-bs-theme=dark] .fc-theme-bootstrap5 .fc-list,
[data-bs-theme=dark] .fc-theme-bootstrap5 .fc-scrollgrid,
[data-bs-theme=dark] .fc-theme-bootstrap5 td,
[data-bs-theme=dark] .fc-theme-bootstrap5 th {
  border-color: var(--palette-border-color) !important;
}

[data-bs-theme=dark] .fc .fc-timegrid-slot,
[data-bs-theme=dark] .fc-daygrid-day {
  background-color: var(--palette-surface-secondary) !important;
}

.dropdown.ew-calendar-dropdown,
[data-bs-theme=dark] .dropdown.ew-calendar-dropdown {
  z-index: 999999;
}

/* ─── Rapports dark ───────────────────────────────────────── */
[data-bs-theme=dark] .ew-rpt-grp-field-1 {
  --bs-table-accent-bg: var(--palette-surface-secondary);
}

[data-bs-theme=dark] .ew-rpt-page-summary,
[data-bs-theme=dark] .ew-rpt-grand-summary {
  --bs-table-accent-bg: var(--palette-bg-canvas) !important;
  color: var(--palette-text-primary) !important;
}

/* =========================================================
   BOOTSTRAP DARK TOKENS
   ========================================================= */
[data-bs-theme=dark] {
  --bs-primary-text-emphasis: var(--palette-coral);
  --bs-secondary-text-emphasis: var(--palette-text-secondary);
  --bs-success-text-emphasis: hsl(151, 50%, 53%);
  --bs-info-text-emphasis: hsl(210, 100%, 66%);
  --bs-warning-text-emphasis: hsl(43, 100%, 64%);
  --bs-danger-text-emphasis: hsl(358, 85%, 64%);
  --bs-primary-bg-subtle: rgba(31, 226, 155, 0.12);
  --bs-secondary-bg-subtle: var(--palette-surface-secondary);
  --bs-success-bg-subtle: hsl(155, 44%, 8%);
  --bs-info-bg-subtle: hsl(212, 35%, 9%);
  --bs-warning-bg-subtle: hsl(36, 100%, 6%);
  --bs-danger-bg-subtle: hsl(353, 23%, 10%);
  --bs-primary-border-subtle: var(--palette-brand-green-deep);
  --bs-secondary-border-subtle: var(--palette-border-warm);
  --bs-success-border-subtle: hsl(151, 55%, 41%);
  --bs-info-border-subtle: hsl(206, 100%, 50%);
  --bs-warning-border-subtle: hsl(39, 100%, 57%);
  --bs-danger-border-subtle: hsl(358, 75%, 59%);
  --bs-link-color: var(--palette-coral);
  --bs-link-hover-color: #4ef5b8;
  --bs-border-color: var(--palette-border-color);
  --bs-border-color-translucent: rgba(255, 255, 255, .08);
}

/* =========================================================
   COMPOSANTS COMMUNS (light + dark)
   ========================================================= */

/* ─── Boutons SM ──────────────────────────────────────────── */
.btn-sm,
.btn-group-sm>.btn {
  --bs-btn-padding-y: 0.25rem;
  --bs-btn-padding-x: 0.5rem;
  --bs-btn-font-size: 0.875rem;
}

/* ─── Cursor pointer ──────────────────────────────────────── */
.btn,
.nav-link,
.dropdown-item,
.ws-item,
.kpi-box,
.small-box,
[data-bs-toggle],
[role=button] {
  cursor: pointer !important;
}

/* ─── Theme switch ────────────────────────────────────────── */
.theme-switch-wrapper {
  display: flex;
  align-items: center;
}

.theme-switch-wrapper em {
  margin-left: 10px;
  font-size: 1rem;
}

.theme-switch {
  display: inline-block;
  height: 24px;
  position: relative;
  width: 48px;
}

.theme-switch input {
  display: none;
}

.theme-slider {
  background-color: var(--palette-border-warm);
  bottom: 0;
  cursor: pointer;
  left: 0;
  position: absolute;
  right: 0;
  top: 0;
  transition: 0.4s;
}

.theme-slider:before {
  background-color: #fff;
  bottom: 2px;
  content: "";
  height: 20px;
  left: 2px;
  position: absolute;
  transition: 0.4s;
  width: 20px;
}

input:checked+.theme-slider {
  background-color: var(--palette-coral);
}

input:checked+.theme-slider:before {
  transform: translateX(24px);
}

.theme-slider.round {
  border-radius: 28px;
}

.theme-slider.round:before {
  border-radius: 50%;
}

/* ─── Scroll to top ───────────────────────────────────────── */
.scrollTop {
  position: fixed;
  bottom: 40px;
  right: 30px;
  z-index: 10000;
  display: none;
  cursor: pointer;
  overflow: hidden;
}

.scrollTop #scrolltop-bg {
  fill: var(--palette-bg-primary-core);
}

.scrollTop #scrolltop-arrow {
  fill: #ffffff;
}

.scrollTop a:hover #scrolltop-bg {
  fill: var(--palette-bg-tertiary-core);
}

.scrollTop a svg {
  display: block;
  border-radius: 50%;
  width: 100%;
  height: 100%;
}

.scrollTop a svg path {
  transition: all 0.1s;
}

.scrollTop a #scrolltop-arrow {
  transform: scale(0.66);
  transform-origin: center;
}

/* ─── Brand image ─────────────────────────────────────────── */
.brand-image {
  margin-top: -5px;
  line-height: .1;
  max-height: 30px;
  margin-bottom: -4px;
}

.brand-link .brand-image {
  float: left;
  line-height: 0.8;
  margin-left: 0.8rem;
  margin-right: 0.5rem;
  margin-top: -3px;
  max-height: 50px;
  width: auto;
}

/* ─── Logo sidebar : switcher dark/light ─────────────────── */
/* État par défaut : logo full visible, lettre "C" cachée */
.brand-link .brand-image.ct-logo-full,
.brand-link .brand-image.logo-full {
  display: block;
}

.ct-logo-mini,
.brand-logo-mini {
  display: none;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1;
  color: var(--palette-coral);
  margin-left: 0.4rem;
}

/* Sidebar réduite (sidebar-collapse) : lettre "C", logo caché */
body.sidebar-collapse .brand-link .brand-image.ct-logo-full,
body.sidebar-collapse .brand-link .brand-image.logo-full {
  display: none;
}

body.sidebar-collapse .brand-link .ct-logo-mini,
body.sidebar-collapse .brand-link .brand-logo-mini {
  display: block;
}

/* Survol sidebar réduite : logo full réapparaît */
body.sidebar-collapse .main-sidebar:not(.sidebar-no-expand):hover .brand-image.ct-logo-full,
body.sidebar-collapse .main-sidebar:not(.sidebar-no-expand):hover .brand-image.logo-full,
body.sidebar-collapse .main-sidebar:not(.sidebar-no-expand).sidebar-focused .brand-image.ct-logo-full,
body.sidebar-collapse .main-sidebar:not(.sidebar-no-expand).sidebar-focused .brand-image.logo-full {
  display: block;
}

body.sidebar-collapse .main-sidebar:not(.sidebar-no-expand):hover .ct-logo-mini,
body.sidebar-collapse .main-sidebar:not(.sidebar-no-expand):hover .brand-logo-mini,
body.sidebar-collapse .main-sidebar:not(.sidebar-no-expand).sidebar-focused .ct-logo-mini,
body.sidebar-collapse .main-sidebar:not(.sidebar-no-expand).sidebar-focused .brand-logo-mini {
  display: none;
}

/* ─── User card sidebar ───────────────────────────────────── */
.ms-user-card {
  position: relative;
  margin: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  padding: 0.5rem;
  width: 220px;
  min-height: 65px;
  margin-bottom: 28.5px;
}

.ms-user-card .ms-user-card-wrapper {
  left: 0;
  right: 0;
  position: absolute;
  display: flex;
  height: 100%;
  bottom: -32.5px;
  padding: 0 0.8rem;
}

.ms-user-card .ms-user-card-wrapper .ms-user-card-pic {
  display: flex;
  align-items: center;
  padding-right: 0.2rem;
}

.ms-user-card .ms-user-card-wrapper .ms-user-card-pic img {
  border-radius: 50%;
  max-height: 80px;
  max-width: 80px;
}

.ms-user-card .ms-user-card-wrapper .ms-user-card-details {
  display: flex;
  flex-direction: column;
}

.ms-user-card .ms-user-card-wrapper .ms-user-card-details .ms-user-card-name {
  display: flex;
  align-items: flex-end;
  font-size: 0.8rem;
  height: 50%;
  font-weight: 500;
  padding-bottom: 0.25rem;
}

.ms-user-card .ms-user-card-wrapper .ms-user-card-details .ms-user-card-position {
  padding-top: 0.25rem;
  display: flex;
  height: 50%;
  align-items: flex-start;
  font-size: 0.8rem;
  font-weight: 400;
  opacity: .6;
}

/* ─── User panel ──────────────────────────────────────────── */
.user-panel {
  top: -4px;
}

/* ─── Dropdown animations ─────────────────────────────────── */
.dropdown-menu.dropdown-menu-anim {
  animation: dropdown-menu-fade-in .2s ease 1, dropdown-menu-move-up .2s ease-out 1;
}

.dropup .dropdown-menu.dropdown-menu-anim {
  animation: dropdown-menu-fade-in .2s ease 1, dropdown-menu-move-down .2s ease-out 1;
}

/* ─── Dropdown items ──────────────────────────────────────── */
.dropdown-item {
  color: var(--palette-text-primary) !important;
  font-size: 0.88rem;
  font-weight: 500;
  transition: background-color 0.15s ease;
}

.dropdown-item:hover,
.dropdown-item:focus {
  background-color: var(--palette-surface-secondary) !important;
  color: var(--palette-text-primary) !important;
}

/* ─── Modal ───────────────────────────────────────────────── */
.modal-dialog {
  transform: none !important;
  top: 0 !important;
  margin: 1rem auto !important;
}

.modal-content {
  width: 100%;
}

.modal-dialog-centered {
  display: flex;
  align-items: flex-start;
  min-height: auto !important;
}

.modal-dialog-centered::before {
  display: none !important;
  height: 0 !important;
}

.modal-dialog-scrollable {
  display: flex;
  max-height: calc(100% - 1rem);
}

.modal-dialog-scrollable .modal-content {
  max-height: calc(100vh - 1rem);
  overflow: hidden;
}

.modal-dialog-scrollable .modal-header,
.modal-dialog-scrollable .modal-footer {
  flex-shrink: 0;
}

.modal-dialog-scrollable .modal-body {
  overflow-y: auto;
}

.modal.ew-modal-search .modal-dialog,
.ew-search-panel .modal-dialog,
.ew-extended-search .modal-dialog {
  margin-top: 1rem !important;
  align-items: flex-start !important;
}

/* ─── Nav pills / tabs ────────────────────────────────────── */
.nav-pills,
.nav-tabs {
  margin-bottom: -1px;
}

.tab-content {
  margin-right: 10px;
  padding-top: 10px;
}

.popover-body .tab-content,
.tab-content {
  margin-top: 0;
  padding-left: 10px;
  padding-bottom: 10px;
  width: 100%;
}

.popover-body .tab-content {
  float: left;
  padding-right: 10px;
}

.ew-detail-pages .tab-content,
.ew-multi-page .tab-content,
.ew-preview .tab-content,
.ew-preview-overlay .tab-content,
.ew-preview-container .tab-content {
  margin-top: 0;
  border-top: 1px solid var(--palette-border-color);
  background-color: var(--palette-bg-base);
  width: 100% !important;
  padding: 10px;
}

/* ─── Formulaires labels ──────────────────────────────────── */
@media (min-width: 576px) {

  .col-form-label-add,
  .col-form-label-edit,
  .col-form-label-search {
    padding-top: calc(.375rem + 9px);
    padding-bottom: calc(.375rem + 1px);
    margin-bottom: 0;
    font-size: inherit;
    line-height: 1.5;
    text-align: right;
  }

  .col-form-label {
    padding-top: calc(.375rem + 1px);
    padding-bottom: calc(.375rem + 1px);
    margin-bottom: 0;
    font-size: inherit;
    line-height: 1.6;
    text-align: right;
  }

  .col-form-data {
    padding-top: calc(.375rem + 1px);
    padding-bottom: calc(.375rem + 1px);
    margin-bottom: 0;
    font-size: inherit;
    line-height: 1.6;
    text-align: left;
  }
}

/* ─── Placeholders ────────────────────────────────────────── */
.form-control::placeholder {
  color: var(--palette-text-tertiary);
  opacity: .5;
}

textarea::placeholder {
  color: var(--palette-text-tertiary);
  opacity: .5;
}

.select2-selection__placeholder {
  color: var(--palette-text-tertiary);
  opacity: .5;
}

/* ─── Select2 multiple ────────────────────────────────────── */
.select2-container--bootstrap5 .select2-selection--multiple .select2-search__field {
  height: calc(1em + 0.1rem);
  padding-top: 0;
  margin: 0;
  line-height: 1;
  color: var(--palette-text-primary);
}

.ew-select,
.select2-container {
  min-width: 20em !important;
}

.select2-container--bootstrap5 .select2-search--dropdown .select2-search__field:focus {
  border-color: var(--palette-coral) !important;
  outline: none !important;
  box-shadow: none !important;
}

.select2-container--bootstrap5 .select2-search--dropdown .select2-search__field {
  padding: 0.375rem 0.75rem;
  color: inherit;
  border: 1px solid var(--palette-border-warm);
  border-radius: var(--radius-pill);
}

/* ─── Scrollbar ───────────────────────────────────────────── */
.os-theme-light>.os-scrollbar>.os-scrollbar-track>.os-scrollbar-handle {
  background: var(--palette-border-warm);
}

.os-theme-light>.os-scrollbar:hover>.os-scrollbar-track>.os-scrollbar-handle {
  background: var(--palette-text-tertiary);
}

.os-theme-light>.os-scrollbar>.os-scrollbar-track>.os-scrollbar-handle.active {
  background: var(--palette-coral);
}

/* ─── Pager responsive ────────────────────────────────────── */
@media (min-width: 780px) {
  .ew-pager .input-group {
    flex-wrap: nowrap;
  }

  .ew-pager .input-group>input.ew-page-no {
    width: 6em;
  }
}

@media (min-width: 476px) and (max-width: 576px) {
  .ew-pager .input-group {
    flex-wrap: nowrap;
  }

  .ew-pager .input-group>input.ew-page-no {
    width: 3em;
  }
}

.ew-pager .input-group,
.ew-pager .pagination,
.ew-pager .pagination-sm {
  gap: 0 !important;
}

/* ─── Divers PHPMaker ─────────────────────────────────────── */
.ew-list-option-body {
  vertical-align: top !important;
}

#signatureparent {
  height: 200px !important;
}

#signature {
  height: 150px !important;
}

.ew-preview-container.ew-table-preview-row.expandable-body {
  background-color: inherit !important;
  min-width: 500px;
}

.table.ew-table.table-head-fixed thead tr:nth-child(1) th {
  box-shadow: none;
  outline: 0;
}

.nav-legacy {
  margin: 0 -0.5rem 0;
}

button:focus {
  outline: dotted 0;
  outline: -webkit-focus-ring-color auto 0;
}

/* ─── Breadcrumb content header ───────────────────────────── */
.content-header .ew-breadcrumbs,
.content-header .breadcrumb {
  float: none !important;
  justify-content: flex-start !important;
  margin-left: 0 !important;
}

.content-header h1,
.content-header .content-header-title {
  display: none !important;
}

/* ─── Breadcrumb MS ───────────────────────────────────────── */
.ms-breadcrumblinks-form {
  width: 100% !important;
}

@media (min-width: 576px) {
  .ms-breadcrumblinks-box {
    width: 550px;
  }
}

/* ─── Input group ─────────────────────────────────────────── */
.input-group>.form-control:not(.form-control-navbar),
.input-group>.form-select {
  width: auto;
  flex: initial;
  margin-right: 8px;
}

/* ─── Small box mobile ────────────────────────────────────── */
@media (max-width: 575.98px) {
  div.small-box p {
    font-size: 1.2rem !important;
  }
}

/* ─── Impression ──────────────────────────────────────────── */
@media print {

  .card,
  .modal-content {
    box-shadow: none !important;
  }
}

/* ─── Input width minimum ─────────────────────────────────── */
input[type=password]:not([size]),
input[type=text]:not([size]):not(.ew-page-number):not(.cke_dialog_ui_input_text):not(.tox-textfield):not(.form-control-plaintext) {
  min-width: 200px;
}

/* =========================================================
   KPI BOX
   ========================================================= */
.kpi-box {
  border-left: 3px solid var(--palette-coral);
  border: 1px solid var(--palette-border-color);
  border-radius: var(--radius-card);
  padding: 12px;
  background: var(--palette-bg-base);
  text-align: center;
  transition: box-shadow var(--ct-transition), transform var(--ct-transition);
}

.kpi-box:hover {
  box-shadow: var(--shadow-hover);
  transform: translateY(-1px);
}

.kpi-box .kpi-label {
  font-size: 11px;
  color: var(--palette-text-tertiary);
  text-transform: none;
  letter-spacing: .04em;
  font-weight: 600;
}

.kpi-box .kpi-val {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--palette-coral);
  font-family: var(--font-family-mono) !important;
  animation: ct-pulse 3s ease-in-out infinite;
}

[data-bs-theme=dark] .kpi-box {
  border-color: var(--palette-border-color);
  background: var(--palette-bg-base);
}

[data-bs-theme=dark] .kpi-box .kpi-label {
  color: var(--palette-text-tertiary);
}

[data-bs-theme=dark] .kpi-box .kpi-val {
  color: var(--palette-coral);
}

/* =========================================================
   WORKSPACE — CashTimely
   ========================================================= */

/* ─── Liste ws-item ───────────────────────────────────────── */
.ws-item {
  padding: 10px 14px;
  border-bottom: 1px solid var(--palette-border-color);
  cursor: pointer;
  transition: background var(--ct-transition), border-left-color var(--ct-transition);
  border-left: 3px solid transparent;
}

.ws-item:hover,
.ws-item.active {
  background: var(--palette-surface-secondary);
  border-left-color: var(--palette-coral);
}

.ws-item:last-child {
  border-bottom: 0;
}

[data-bs-theme=dark] .ws-item {
  border-bottom-color: var(--palette-border-color);
}

[data-bs-theme=dark] .ws-item:hover,
[data-bs-theme=dark] .ws-item.active {
  background: var(--palette-surface-secondary);
  border-left-color: var(--palette-coral);
}

/* ─── Workspace facture ───────────────────────────────────── */
.ws-facture .ws-list {
  max-height: 70vh;
  overflow-y: auto;
}

.ws-facture .ws-item {
  padding: 10px 14px;
  border-bottom: 1px solid var(--palette-border-color);
  cursor: pointer;
}

.ws-facture .ws-item:hover {
  background: var(--palette-surface-secondary);
  border-left-color: var(--palette-coral);
}

.ws-facture .ws-item:last-child {
  border-bottom: 0;
}

[data-bs-theme=dark] .ws-facture .ws-item:hover {
  background: var(--palette-surface-secondary) !important;
}

.ws-facture .kpi-box {
  border-left: 3px solid var(--palette-coral);
  border: 1px solid var(--palette-border-color);
  border-radius: var(--radius-card);
  padding: 12px;
  background: var(--palette-bg-base);
  text-align: center;
}

/* ─── Breadcrumb workspace ────────────────────────────────── */
.ws-breadcrumb {
  margin-bottom: 0.75rem;
}

.ws-breadcrumb .breadcrumb {
  background: transparent;
  padding: 0;
  margin: 0;
  font-size: 0.825rem;
}

.ws-breadcrumb .breadcrumb-item+.breadcrumb-item::before {
  content: "/";
  color: var(--palette-text-tertiary);
}

.ws-breadcrumb .breadcrumb-item a {
  color: var(--palette-text-link);
  text-decoration: none;
  transition: color var(--ct-transition);
}

.ws-breadcrumb .breadcrumb-item a:hover {
  color: var(--palette-coral);
  text-decoration: underline;
}

.ws-breadcrumb .breadcrumb-item.active {
  color: var(--palette-text-tertiary);
  font-weight: 500;
}

[data-bs-theme=dark] .ws-breadcrumb .breadcrumb-item a {
  color: var(--palette-coral) !important;
}

[data-bs-theme=dark] .ws-breadcrumb .breadcrumb-item.active {
  color: var(--palette-text-tertiary) !important;
}

/* ─── Texte coloré ────────────────────────────────────────── */
.text-bg-blue {
  color: #ffffff !important;
  background-color: var(--palette-coral) !important;
}

[data-bs-theme=dark] .text-bg-blue {
  color: #0d0d0d !important;
  background-color: var(--palette-coral) !important;
}

/* =========================================================
   MODAL DOSSIER (#dosModal)
   ========================================================= */
#dosModal {
  --dos-bg: var(--palette-bg-base);
  --dos-surface: var(--palette-surface-tertiary);
  --dos-border: var(--palette-border-color);
  --dos-text: var(--palette-text-primary);
  --dos-text-muted: var(--palette-text-secondary);
  --dos-hover-row: var(--palette-surface-secondary);
}

[data-bs-theme=dark] #dosModal {
  --dos-bg: var(--palette-bg-base);
  --dos-surface: var(--palette-surface-secondary);
  --dos-border: var(--palette-border-color);
  --dos-text: var(--palette-text-primary);
  --dos-text-muted: var(--palette-text-secondary);
  --dos-hover-row: var(--palette-surface-tertiary);
}

#dosModal .modal-content {
  background-color: var(--dos-bg) !important;
  border: 1px solid var(--dos-border) !important;
  border-radius: var(--radius-card) !important;
  box-shadow: var(--shadow-hover) !important;
  overflow: hidden;
  color: var(--dos-text) !important;
}

#dosModal .modal-header {
  background: var(--dos-surface) !important;
  color: var(--dos-text) !important;
  border-bottom: 1px solid var(--dos-border) !important;
  padding: 1.1rem 1.5rem !important;
}

#dosModal .modal-header .btn-close {
  opacity: 0.7;
}

#dosModal .dos-hero {
  display: flex;
  align-items: center;
  gap: 1rem;
}

#dosModal .dos-avatar {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: var(--palette-surface-secondary) !important;
  border: 1px solid var(--palette-border-color);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.4rem;
  color: var(--palette-coral);
}

#dosModal .dos-hero-text h5 {
  margin: 0;
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--dos-text);
}

#dosModal .dos-hero-text small {
  opacity: .7;
  color: var(--dos-text-muted) !important;
}

#dosModal .modal-body {
  background-color: var(--dos-bg) !important;
  padding: 1.25rem 1.5rem;
}

#dosModal .nav-tabs .nav-link {
  color: var(--dos-text-muted) !important;
  border-bottom: 2px solid transparent;
  transition: color var(--ct-transition), border-color var(--ct-transition);
}

#dosModal .nav-tabs .nav-link.active,
#dosModal .nav-tabs .nav-link:hover {
  color: var(--palette-coral) !important;
  border-bottom-color: var(--palette-coral) !important;
  background: transparent !important;
}

[data-bs-theme=dark] #dosModal .nav-tabs .nav-link.active {
  color: var(--palette-coral) !important;
  border-bottom-color: var(--palette-coral) !important;
}

#dosModal table>tbody>tr:hover>td {
  background-color: var(--dos-hover-row) !important;
}

#dosModal .modal-footer {
  background-color: var(--dos-surface) !important;
  border-top: 1px solid var(--dos-border) !important;
}

/* =========================================================
   DASHBOARD PD2
   ========================================================= */
.pd2 {
  display: grid;
  gap: 12px;
  margin: 8px 0 16px;
}

.pd2-topbar {
  display: flex;
  align-items: center;
  gap: 8px;
}

.pd2-topbar label {
  font-size: .82rem;
  color: var(--palette-text-tertiary);
}

.pd2-topbar .form-select {
  max-width: 420px;
}

body.pd2-dashboard-active .pd2 {
  margin: 4px 0 12px;
}

body.pd2-dashboard-active .pd2-topbar {
  margin-bottom: 4px;
}

body.pd2-dashboard-active .ew-card.ew-grid,
body.pd2-dashboard-active .ew-grid {
  display: none !important;
}

.pd2-hero {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 16px;
  border-radius: var(--radius-card);
  border: 1px solid var(--palette-border-color);
  background: var(--palette-bg-base);
  box-shadow: var(--shadow-card);
  margin-bottom: 16px;
  color: var(--palette-text-primary);
}

.pd2-avatar {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--palette-coral);
  color: #0d0d0d;
  font-size: 1.4rem;
}

.pd2-hero-main h2 {
  margin: 0;
  font-size: 1.8rem;
  font-weight: 700;
}

.pd2-hero-main p {
  margin: .1rem 0 0;
  opacity: .7;
}

.pd2-hero-fin {
  margin-left: auto;
  text-align: right;
}

.pd2-hero-fin span {
  display: block;
  font-size: .78rem;
  opacity: .7;
}

.pd2-hero-fin strong {
  font-size: 1.5rem;
  line-height: 1.1;
  color: var(--palette-coral);
}

.pd2-kpis {
  display: grid;
  grid-template-columns: repeat(4, minmax(180px, 1fr));
  gap: 12px;
}

.pd2-meta {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 12px;
  margin: 10px 0 12px;
  font-size: .95rem;
  color: var(--palette-text-tertiary);
}

.pd2-meta strong {
  color: var(--palette-text-primary);
  font-weight: 700;
}

.pd2-kpi {
  border-radius: var(--radius-card);
  padding: 14px;
  box-shadow: var(--shadow-card);
  border: 1px solid var(--palette-border-color);
  border-left: 3px solid var(--palette-coral);
  background: var(--palette-bg-base);
  transition: transform var(--ct-transition), box-shadow var(--ct-transition);
}

.pd2-kpi:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-hover);
}

.pd2-kpi small {
  text-transform: none;
  letter-spacing: .05em;
  font-weight: 700;
  font-size: .78rem;
  color: var(--palette-text-tertiary);
}

.pd2-kpi h3 {
  margin: 6px 0 4px;
  font-size: 2rem;
  line-height: 1;
  color: var(--palette-text-primary);
}

.pd2-kpi p {
  margin: 0;
  font-size: .85rem;
  color: var(--palette-text-secondary);
}

/* Couleurs accents KPI */
.pd2-kpi.k1 {
  border-left-color: var(--palette-coral);
}

.pd2-kpi.k2 {
  border-left-color: #3772cf;
}

.pd2-kpi.k3 {
  border-left-color: hsl(151, 55%, 41%);
}

.pd2-kpi.k4 {
  border-left-color: #c37d0d;
}

.pd2-panels {
  display: grid;
  grid-template-columns: repeat(4, minmax(200px, 1fr));
  gap: 12px;
  align-items: stretch;
}

.pd2-recent-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(280px, 1fr));
  gap: 12px;
  margin-top: 12px;
}

.pd2-list {
  margin: 0;
  padding-left: 18px;
}

.pd2-list li {
  margin: 0 0 8px;
  font-size: .92rem;
  line-height: 1.35;
}

.pd2-panel {
  border: 1px solid var(--palette-border-color);
  background: var(--palette-bg-base);
  border-radius: var(--radius-card);
  padding: 12px;
  box-shadow: var(--shadow-card);
  min-height: 150px;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}

.pd2-panel h4 {
  margin: 0 0 8px;
  font-size: .82rem;
  text-transform: none;
  letter-spacing: .04em;
  color: var(--palette-text-tertiary);
  display: flex;
  align-items: center;
  gap: 6px;
}

.pd2-panel p {
  margin: 0 0 5px;
}

.pd2-alert {
  color: #d45656;
  font-weight: 700;
}

.pd2-ok {
  color: hsl(151, 55%, 41%);
  font-weight: 700;
}

[data-bs-theme=dark] .pd2-hero {
  background: var(--palette-bg-base);
  border-color: var(--palette-border-color);
  color: var(--palette-text-primary);
  box-shadow: var(--shadow-card);
}

[data-bs-theme=dark] .pd2-hero-fin strong {
  color: var(--palette-coral);
}

[data-bs-theme=dark] .pd2-kpi {
  background: var(--palette-bg-base);
  border-color: var(--palette-border-color);
}

[data-bs-theme=dark] .pd2-kpi h3 {
  color: var(--palette-text-primary);
}

[data-bs-theme=dark] .pd2-kpi p {
  color: var(--palette-text-secondary);
}

[data-bs-theme=dark] .pd2-kpi small {
  color: var(--palette-text-tertiary);
}

[data-bs-theme=dark] .pd2-panel {
  border-color: var(--palette-border-color);
  background: var(--palette-bg-base);
  box-shadow: var(--shadow-card);
}

/* ─── Responsive pd2 ──────────────────────────────────────── */
@media (max-width: 1200px) {
  .pd2-kpis {
    grid-template-columns: repeat(2, 1fr);
  }

  .pd2-panels {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 768px) {
  .pd2-hero {
    flex-wrap: wrap;
  }

  .pd2-hero-fin {
    margin-left: 0;
    text-align: left;
  }

  .pd2-kpis,
  .pd2-panels {
    grid-template-columns: 1fr;
  }

  .pd2-topbar {
    flex-direction: column;
    align-items: stretch;
  }
}

/* =========================================================
   MODULE COURRIERS — disposition champs add/edit
   ========================================================= */
:is(form[id^="fcour_"][id$="add"], form[id^="fcour_"][id$="edit"]) :is(.ew-add-div, .ew-edit-div)>[id^="r_"] {
  display: grid;
  grid-template-columns: 33% 67%;
  align-items: stretch;
  margin: 0;
  border-bottom: 1px solid var(--palette-border-color);
}

:is(form[id^="fcour_"][id$="add"], form[id^="fcour_"][id$="edit"]) :is(.ew-add-div, .ew-edit-div)>[id^="r_"]>label {
  margin: 0;
  padding: 18px 16px;
  font-weight: 600;
  display: flex;
  align-items: center;
  border-right: 1px solid var(--palette-border-color);
}

:is(form[id^="fcour_"][id$="add"], form[id^="fcour_"][id$="edit"]) :is(.ew-add-div, .ew-edit-div)>[id^="r_"]>.row>[id^="el_"],
:is(form[id^="fcour_"][id$="add"], form[id^="fcour_"][id$="edit"]) :is(.ew-add-div, .ew-edit-div)>[id^="r_"]>div>[id^="el_"],
:is(form[id^="fcour_"][id$="add"], form[id^="fcour_"][id$="edit"]) :is(.ew-add-div, .ew-edit-div)>[id^="r_"]>div>div {
  padding: 10px 16px;
  display: flex;
  align-items: center;
  min-height: 62px;
}

:is(form[id^="fcour_"][id$="add"], form[id^="fcour_"][id$="edit"]) .form-control,
:is(form[id^="fcour_"][id$="add"], form[id^="fcour_"][id$="edit"]) .form-select,
:is(form[id^="fcour_"][id$="add"], form[id^="fcour_"][id$="edit"]) input[type="text"],
:is(form[id^="fcour_"][id$="add"], form[id^="fcour_"][id$="edit"]) input[type="number"],
:is(form[id^="fcour_"][id$="add"], form[id^="fcour_"][id$="edit"]) textarea {
  max-width: 420px;
  width: 100%;
}

:is(form[id^="fcour_"][id$="add"], form[id^="fcour_"][id$="edit"]) textarea {
  min-height: 120px;
}

:is(form[id^="fcour_"][id$="add"], form[id^="fcour_"][id$="edit"]) .ew-item-list {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 18px;
}

:is(form[id^="fcour_"][id$="add"], form[id^="fcour_"][id$="edit"]) .ew-item-list .form-check {
  margin: 0;
}

:is(form[id^="fcour_"][id$="add"], form[id^="fcour_"][id$="edit"]) .ew-item-list .form-check-input[type="radio"] {
  margin-top: 0.15rem;
}

:is(form[id^="fcour_"][id$="add"], form[id^="fcour_"][id$="edit"]) .form-switch .form-check-input {
  min-width: 2.3rem;
}

:is(form[id^="fcour_"][id$="add"], form[id^="fcour_"][id$="edit"]) .ew-buttons {
  padding-top: 18px;
}

@media (max-width: 991.98px) {
  :is(form[id^="fcour_"][id$="add"], form[id^="fcour_"][id$="edit"]) :is(.ew-add-div, .ew-edit-div)>[id^="r_"] {
    grid-template-columns: 1fr;
  }

  :is(form[id^="fcour_"][id$="add"], form[id^="fcour_"][id$="edit"]) :is(.ew-add-div, .ew-edit-div)>[id^="r_"]>label {
    border-right: 0;
    border-bottom: 1px solid var(--palette-border-color);
    padding: 12px 16px 8px;
  }

  :is(form[id^="fcour_"][id$="add"], form[id^="fcour_"][id$="edit"]) :is(.ew-add-div, .ew-edit-div)>[id^="r_"]>.row>[id^="el_"],
  :is(form[id^="fcour_"][id$="add"], form[id^="fcour_"][id$="edit"]) :is(.ew-add-div, .ew-edit-div)>[id^="r_"]>div>[id^="el_"],
  :is(form[id^="fcour_"][id$="add"], form[id^="fcour_"][id$="edit"]) :is(.ew-add-div, .ew-edit-div)>[id^="r_"]>div>div {
    padding: 10px 16px 14px;
  }
}

/* =========================================================
   DESIGN.md — COMPOSANTS MINTLIFY
   ========================================================= */

/* ─── Badges pills — signature Mintlify ──────────────────── */
.badge-pill,
.badge.rounded-pill,
.badge-brand {
  border-radius: var(--radius-pill) !important;
  padding: 4px 12px !important;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: var(--tracking-mono);
  text-transform: none;
}

/* Badge brand green */
.badge-warm {
  background: rgba(31, 226, 155, 0.12);
  color: var(--palette-brand-green-deep);
  border: 1px solid rgba(31, 226, 155, 0.25);
  border-radius: var(--radius-pill);
  padding: 3px 10px;
  font-size: 0.72rem;
  font-weight: 600;
}

/* Badge surfaces neutres */
.badge-neutral {
  background: var(--palette-surface-secondary);
  color: var(--palette-text-secondary);
  border: 1px solid var(--palette-border-warm);
  border-radius: var(--radius-pill);
  padding: 3px 10px;
  font-size: 0.72rem;
  font-weight: 600;
}

[data-bs-theme=dark] .badge-warm {
  background: rgba(31, 226, 155, 0.18);
  color: var(--palette-coral);
}

[data-bs-theme=dark] .badge-neutral {
  background: var(--palette-surface-secondary);
  color: var(--palette-text-secondary);
  border-color: var(--palette-border-warm);
}

/* ─── Bouton pill primaire (Mintlify CTA) ────────────────── */
.btn-pill {
  border-radius: var(--radius-pill) !important;
  padding: 8px 24px;
  font-size: 0.94rem;
  font-weight: 500;
  box-shadow: var(--shadow-btn);
  transition: opacity var(--ct-transition);
}

.btn-pill:hover {
  opacity: 0.9;
}

.btn-pill-sm {
  border-radius: var(--radius-pill) !important;
  padding: 4.5px 14px;
  font-size: 0.875rem;
  font-weight: 500;
}

/* ─── Inputs — focus ring Mintlify ──────────────────────── */
[data-bs-theme=light] .form-control:focus,
[data-bs-theme=light] .form-select:focus {
  border-color: var(--palette-coral) !important;
  box-shadow: 0 0 0 1px var(--palette-coral), 0 0 0 3px rgba(31, 226, 155, 0.15) !important;
}

[data-bs-theme=dark] .form-control:focus,
[data-bs-theme=dark] .form-select:focus {
  border-color: var(--palette-coral) !important;
  box-shadow: 0 0 0 1px var(--palette-coral), 0 0 0 3px rgba(31, 226, 155, 0.2) !important;
}

/* ─── Input-group — arrondi cohérent ────────────────────── */
.input-group>.form-control:not(:last-child):not(.form-control-navbar) {
  border-radius: var(--radius-pill) 0 0 var(--radius-pill) !important;
}

.input-group>.form-control:not(:first-child):not(.form-control-navbar) {
  border-radius: 0 var(--radius-pill) var(--radius-pill) 0 !important;
}

.input-group>.btn:first-child {
  border-radius: var(--radius-pill) 0 0 var(--radius-pill) !important;
}

.input-group>.btn:last-child {
  border-radius: 0 var(--radius-pill) var(--radius-pill) 0 !important;
  border-left: none;
}

.input-group>.btn:only-child {
  border-radius: var(--radius-pill) !important;
  border-left: revert;
}

/* ─── Carte featured (grande) ───────────────────────────── */
.card-featured {
  border-radius: var(--radius-hero) !important;
  padding: 32px !important;
  border: 1px solid rgba(0, 0, 0, 0.05) !important;
  box-shadow: var(--shadow-subtle) !important;
  background: var(--palette-bg-base) !important;
  overflow: hidden;
}

[data-bs-theme=dark] .card-featured {
  border-color: var(--palette-border-color) !important;
  box-shadow: var(--shadow-card) !important;
}

/* ─── Section label (style Mintlify "trust bar") ─────────── */
.ct-section-label {
  font-size: 0.81rem;
  font-weight: 500;
  text-transform: none;
  letter-spacing: var(--tracking-label);
  color: var(--palette-text-tertiary);
  margin-bottom: 12px;
  display: block;
}

/* ─── Hero gradient atmosphérique (Mintlify) ──── */
.ct-hero-gradient {
  background: linear-gradient(180deg,
      rgba(31, 226, 155, 0.06) 0%,
      rgba(255, 255, 255, 0) 100%);
  border-radius: var(--radius-hero);
  padding: 48px 32px;
}

[data-bs-theme=dark] .ct-hero-gradient {
  background: linear-gradient(180deg,
      rgba(31, 226, 155, 0.08) 0%,
      rgba(13, 13, 13, 0) 100%);
}

/* ─── Dropdown utilisateur ew-user-dropdown ──────────────── */
.dropdown-menu.ew-user-dropdown {
  min-width: 240px;
  border-radius: var(--radius-card) !important;
  box-shadow: var(--shadow-hover) !important;
  border: 1px solid var(--palette-border-color) !important;
  background-color: var(--palette-bg-base) !important;
  font-family: var(--font-family-primary);
  padding: 6px;
}

.dropdown-menu.ew-user-dropdown .ms-user-card {
  border-radius: calc(var(--radius-card) - 2px) calc(var(--radius-card) - 2px) 0 0;
  background-color: var(--palette-surface-secondary) !important;
  overflow: visible;
  margin: -6px -6px 6px;
}

.dropdown-menu.ew-user-dropdown .dropdown-item {
  font-size: 0.88rem;
  font-weight: 500;
  color: var(--palette-text-primary) !important;
  border-radius: var(--radius-standard);
  transition: background-color var(--ct-transition);
  padding: 7px 10px;
}

.dropdown-menu.ew-user-dropdown .dropdown-item:hover {
  background-color: var(--palette-surface-secondary) !important;
  color: var(--palette-text-primary) !important;
}

.dropdown-menu.ew-user-dropdown .dropdown-footer .btn:hover {
  background-color: var(--palette-coral) !important;
  border-color: var(--palette-coral) !important;
  color: #0d0d0d !important;
}

[data-bs-theme=dark] .dropdown-menu.ew-user-dropdown {
  background-color: var(--palette-bg-base) !important;
  border-color: var(--palette-border-color) !important;
}

[data-bs-theme=dark] .dropdown-menu.ew-user-dropdown .ms-user-card {
  background-color: var(--palette-surface-secondary) !important;
}

/* ─── Barre de séparation entre sections ────────────────── */
.ct-divider {
  border: none;
  border-top: 1px solid var(--palette-border-color);
  margin: 24px 0;
}

[data-bs-theme=dark] .ct-divider {
  border-top-color: var(--palette-border-color);
}

/* ─── Taux barre — style Mintlify progress ──────────────── */
.ct-progress {
  height: 4px;
  background: var(--palette-surface-secondary);
  border-radius: var(--radius-pill);
  overflow: hidden;
  margin: 6px 0;
}

.ct-progress-fill {
  height: 100%;
  background: var(--palette-coral);
  border-radius: var(--radius-pill);
  transition: width 0.4s ease;
}

.ct-progress-fill.ok {
  background: hsl(151, 55%, 41%);
}

.ct-progress-fill.warn {
  background: #c37d0d;
}

.ct-progress-fill.err {
  background: #d45656;
}

/* ─── Hover card (lift Mintlify) ─────────────────────────── */
.card-lift {
  transition: transform var(--ct-transition), box-shadow var(--ct-transition);
}

.card-lift:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-hover) !important;
}

/* ─── Spinner / chargement ──────────────────────────────── */
.ct-spinner {
  display: inline-block;
  width: 16px;
  height: 16px;
  border: 2px solid var(--palette-border-warm);
  border-top-color: var(--palette-coral);
  border-radius: 50%;
  animation: ct-spin 0.7s linear infinite;
}

@keyframes ct-spin {
  to {
    transform: rotate(360deg);
  }
}

/* ─── Toast / alerte inline ──────────────────────────────── */
.ct-alert {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 12px 14px;
  border-radius: var(--radius-standard);
  border: 1px solid transparent;
  border-left-width: 3px;
  font-size: 0.875rem;
  font-weight: 500;
  margin-bottom: 12px;
}

.ct-alert.info {
  background: #f4f9ff;
  border-color: #d6e7ff;
  border-left-color: #3772cf;
  color: #214e97;
}

.ct-alert.ok {
  background: #f0fdf4;
  border-color: #bbf7d0;
  border-left-color: hsl(151, 55%, 41%);
  color: hsl(153, 67%, 28.5%);
}

.ct-alert.warn {
  background: #fffbeb;
  border-color: #fde68a;
  border-left-color: #c37d0d;
  color: #78350f;
}

.ct-alert.danger {
  background: #fef2f2;
  border-color: #fecaca;
  border-left-color: #d45656;
  color: #991b1b;
}

[data-bs-theme=dark] .ct-alert.info {
  background: hsl(212, 35%, 9%);
  border-color: hsl(211, 85%, 27%);
  color: hsl(210, 100%, 66%);
}

[data-bs-theme=dark] .ct-alert.ok {
  background: hsl(146, 30%, 7%);
  border-color: hsl(153, 52%, 22%);
  color: hsl(151, 50%, 53%);
}

[data-bs-theme=dark] .ct-alert.warn {
  background: hsl(36, 100%, 6%);
  border-color: hsl(35, 100%, 18%);
  color: hsl(43, 100%, 64%);
}

[data-bs-theme=dark] .ct-alert.danger {
  background: hsl(353, 23%, 10%);
  border-color: hsl(357, 60%, 32%);
  color: hsl(358, 100%, 69.5%);
}

/* ─── Table striped Mintlify ─────────────────────────────────── */
[data-bs-theme=light] .table-warm-stripe>tbody>tr:nth-child(even)>td {
  background-color: var(--palette-surface-tertiary) !important;
}

[data-bs-theme=dark] .table-warm-stripe>tbody>tr:nth-child(even)>td {
  background-color: var(--palette-surface-secondary) !important;
}

/* ─── Scrollbar fine (Mintlify) ────────────────────── */
::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}

::-webkit-scrollbar-track {
  background: transparent;
}

::-webkit-scrollbar-thumb {
  background: var(--palette-border-warm);
  border-radius: var(--radius-pill);
}

::-webkit-scrollbar-thumb:hover {
  background: var(--palette-text-tertiary);
}

[data-bs-theme=dark] ::-webkit-scrollbar-thumb {
  background: var(--palette-border-color);
}

[data-bs-theme=dark] ::-webkit-scrollbar-thumb:hover {
  background: var(--palette-border-warm);
}

/* ─── Swal2 — cohérence palette ──────────────────────────── */
[data-bs-theme=light] .swal2-popup,
[data-bs-theme=dark] .swal2-popup {
  background: var(--palette-bg-base) !important;
  border: 1px solid var(--palette-border-color) !important;
  border-radius: var(--radius-card) !important;
  color: var(--palette-text-primary) !important;
  font-family: var(--font-family-primary) !important;
  box-shadow: var(--shadow-hover) !important;
}

.swal2-title {
  font-family: var(--font-family-primary) !important;
  letter-spacing: var(--tracking-card) !important;
  color: var(--palette-text-primary) !important;
}

.swal2-html-container {
  font-family: var(--font-family-primary) !important;
}

/* ─── Responsive helpers ─────────────────────────────────── */
@media (max-width: 768px) {
  .ct-hero-gradient {
    padding: 24px 16px;
  }

  .card-featured {
    padding: 20px !important;
    border-radius: var(--radius-large) !important;
  }
}

/* ─── Sidebar active state (override final — forêt/menthe) ── */
.sidebar-dark-blue .nav-sidebar.nav-legacy>.nav-item>.nav-link.active,
.sidebar-light-blue .nav-sidebar.nav-legacy>.nav-item>.nav-link.active {
  border-color: var(--palette-forest-700);
}

[data-bs-theme=light] .nav-sidebar .nav-link.active,
[data-bs-theme=light] [class*="sidebar-dark-"] .nav-treeview>.nav-item>.nav-link.active,
[data-bs-theme=light] [class*="sidebar-dark-"] .nav-treeview>.nav-item>.nav-link.active:hover {
  background-color: rgba(31, 226, 155, 0.16) !important;
  color: var(--palette-coral) !important;
  font-weight: 600 !important;
}

[data-bs-theme=dark] .sidebar-dark-blue .nav-sidebar.nav-legacy>.nav-item>.nav-link.active,
[data-bs-theme=dark] .sidebar-light-blue .nav-sidebar.nav-legacy>.nav-item>.nav-link.active {
  border-color: var(--palette-forest-700);
}

[data-bs-theme=dark] .nav-sidebar .nav-link.active,
[data-bs-theme=dark] [class*="sidebar-dark-"] .nav-treeview>.nav-item>.nav-link.active,
[data-bs-theme=dark] [class*="sidebar-dark-"] .nav-treeview>.nav-item>.nav-link.active:hover {
  background-color: rgba(31, 226, 155, 0.16) !important;
  color: var(--palette-coral) !important;
  font-weight: 600 !important;
}

/* ─── Badges pill (statuts factures : À payer / Payées / En litige) ── */
.ct-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 11px;
  border-radius: var(--radius-badge);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  line-height: 1.5;
  border: 1px solid transparent;
}

.ct-badge.mint {
  background: var(--palette-brand-green-light);
  color: var(--palette-brand-green-deep);
}

.ct-badge.warn {
  background: #FBF1E0;
  color: #C6862B;
}

.ct-badge.danger {
  background: #FDEDED;
  color: #D64545;
}

.ct-badge.info {
  background: #EAF1FD;
  color: #2F6FE0;
}

.ct-badge.neutral {
  background: var(--palette-surface-secondary);
  color: var(--palette-text-secondary);
}

[data-bs-theme=dark] .ct-badge.mint {
  background: rgba(31, 226, 155, 0.14);
  color: var(--palette-coral);
}

[data-bs-theme=dark] .ct-badge.warn {
  background: rgba(198, 134, 43, 0.16);
  color: #E7B15C;
}

[data-bs-theme=dark] .ct-badge.danger {
  background: rgba(214, 69, 69, 0.16);
  color: #EF8686;
}

[data-bs-theme=dark] .ct-badge.info {
  background: rgba(47, 111, 224, 0.16);
  color: #7FAAF2;
}

[data-bs-theme=dark] .ct-badge.neutral {
  background: var(--palette-surface-secondary);
  color: var(--palette-text-secondary);
}

/* ─── Bouton "forêt" — actions fortes non destructives ───────
   (ex. "Transmettre", "Préparer le paiement" vus dans les visuels) */
.btn-forest {
  background-color: var(--palette-forest-900) !important;
  border-color: var(--palette-forest-900) !important;
  color: #EAF7F1 !important;
  border-radius: var(--radius-pill) !important;
  font-weight: 600 !important;
}

.btn-forest:hover {
  background-color: var(--palette-forest-800) !important;
  border-color: var(--palette-forest-800) !important;
}
/* =========================================================
   6. V2 — AMÉLIORATIONS UI (inspiration dashboards TeamHub /
   Siohioma : sidebar verte identitaire, cartes KPI à icône,
   badges pilule de variation, hiérarchie chiffrée nette)
   ========================================================= */

/* ─── 6.1 FIX PRIORITAIRE — troncature labels sidebar ────────
   Les libellés se superposaient aux icônes faute de layout
   flex explicite + ellipsis. Corrigé indépendamment du thème. */
.nav-sidebar .nav-link {
  display: flex !important;
  align-items: center !important;
  gap: 10px;
  white-space: nowrap;
  overflow: hidden;
}

.nav-sidebar .nav-link .nav-icon {
  flex: 0 0 auto;
  width: 1.4rem;
  text-align: center;
  margin: 0 !important;
}

.nav-sidebar .nav-link p {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  margin: 0;
}

/* Largeur légèrement augmentée pour laisser respirer le texte
   (au lieu de tronquer davantage) */
.main-sidebar,
.sidebar-mini.sidebar-collapse .main-sidebar:hover,
.sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused {
  width: 264px;
}

body:not(.sidebar-collapse) .content-wrapper,
body:not(.sidebar-collapse) .main-footer,
body:not(.sidebar-collapse) .main-header {
  margin-left: 264px;
}

/* ─── 6.2 Nav actif façon "pill" (cf. TeamHub) ────────────────
   Rail menthe à gauche + fond teinté doux + icône dans un
   médaillon plein, au lieu d'un simple soulignement plat. */
.nav-sidebar>.nav-item>.nav-link {
  border-radius: var(--radius-standard);
  margin: 1px 8px;
  padding-left: 10px !important;
  transition: background var(--ct-transition), color var(--ct-transition);
}

.nav-sidebar>.nav-item>.nav-link.active {
  position: relative;
  background: rgba(31, 226, 155, 0.14) !important;
  color: #EAF7F1 !important;
  font-weight: 600;
}

.nav-sidebar>.nav-item>.nav-link.active::before {
  content: "";
  position: absolute;
  left: -8px;
  top: 6px;
  bottom: 6px;
  width: 3px;
  border-radius: var(--radius-pill);
  background: var(--palette-coral);
}

.nav-sidebar>.nav-item>.nav-link.active .nav-icon {
  color: var(--palette-coral) !important;
}

/* ─── 6.3 Harmonisation des couleurs d'icônes ─────────────────
   Les icônes de contact/méta (téléphone, pin, calendrier,
   bulle de message) héritaient de couleurs par défaut d'iconfont
   (rose/rouge/bleu/violet) qui cassaient la palette forêt/menthe.
   On les neutralise vers le gris-vert du design system, quel que
   soit le framework d'icônes utilisé (FA, RemixIcon, BoxIcons). */
i.fa-phone, i.fa-phone-alt, i.fa-mobile-alt, i.fa-mobile,
i.fa-map-marker-alt, i.fa-map-marker, i.fa-map-pin,
i.fa-calendar, i.fa-calendar-alt, i.fa-calendar-day,
i.fa-comment, i.fa-comments, i.fa-comment-alt, i.fa-comment-dots,
i.ri-phone-line, i.ri-phone-fill, i.ri-map-pin-line, i.ri-map-pin-fill,
i.ri-calendar-line, i.ri-calendar-fill, i.ri-message-3-line, i.ri-chat-3-line,
i.bx-phone, i.bx-map, i.bx-calendar, i.bx-message,
i.text-danger:not(.btn i):not(.badge i):not(.alert i):not(.ct-badge i),
i.text-primary:not(.btn i):not(.badge i):not(.alert i):not(.ct-badge i),
i.text-info:not(.btn i):not(.badge i):not(.alert i):not(.ct-badge i),
i.text-purple:not(.btn i):not(.badge i):not(.alert i):not(.ct-badge i),
i.text-pink:not(.btn i):not(.badge i):not(.alert i):not(.ct-badge i) {
  color: var(--palette-text-tertiary) !important;
}

/* Utilitaire à poser manuellement quand une icône doit rester
   identitaire (rare — accent volontaire) */
.ct-icon-mint { color: var(--palette-coral) !important; }

/* Médaillons d'icônes teintés — remplace les icônes "nues"
   multicolores par des puces cohérentes avec la palette,
   comme les icônes de ressources/statuts sur les visuels. */
.ct-icon-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: var(--radius-standard);
  font-size: 15px;
  flex: 0 0 auto;
}

.ct-icon-chip.mint   { background: rgba(31, 226, 155, .14); color: var(--palette-brand-green-deep); }
.ct-icon-chip.info   { background: var(--ws-info-bg, #EAF1FD); color: var(--ws-info-text, #214e97); }
.ct-icon-chip.warn   { background: var(--ws-warn-bg, #FBF1E0); color: var(--ws-warn-text, #78350f); }
.ct-icon-chip.danger { background: var(--ws-danger-bg, #FDEDED); color: var(--ws-danger-text, #991b1b); }
.ct-icon-chip.neutral{ background: var(--palette-surface-secondary); color: var(--palette-text-secondary); }

[data-bs-theme=dark] .ct-icon-chip.neutral { background: var(--palette-surface-secondary); color: var(--palette-text-secondary); }

/* ─── 6.4 Hiérarchie des chiffres KPI ──────────────────────────
   Tout .kpi-val (même hors .kpi-box, ex. Montant dû / Recouvré /
   Reliquat / Taux) passe en monospace + chiffres tabulaires,
   pour un alignement propre façon tableau financier. */
.kpi-val {
  font-family: var(--font-family-mono) !important;
  font-variant-numeric: tabular-nums;
}

/* Carte "stat héro" — gros chiffre + icône médaillon + delta,
   inspirée du bloc "146 Total Applicants" des visuels. */
.ct-stat-hero {
  background: var(--palette-deep-dark);
  border-radius: var(--radius-card);
  padding: var(--spacing-9);
  color: #EAF7F1;
  display: flex;
  flex-direction: column;
  gap: var(--spacing-7);
}

.ct-stat-hero .ct-icon-chip {
  background: rgba(255, 255, 255, .12);
  color: var(--palette-coral);
  width: 40px;
  height: 40px;
  font-size: 18px;
}

.ct-stat-hero .ct-stat-value {
  font-family: var(--font-family-mono);
  font-size: 2.1rem;
  font-weight: 700;
  line-height: 1;
  display: flex;
  align-items: center;
  gap: var(--spacing-6);
}

.ct-stat-hero .ct-stat-label {
  font-size: .78rem;
  color: rgba(234, 247, 241, .64);
}

/* Pilule de variation (+8.2%, -2.4%…) façon reference visuelle */
.ct-delta-pill {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 9px;
  border-radius: var(--radius-pill);
  font-family: var(--font-family-mono);
  font-size: .72rem;
  font-weight: 600;
}

.ct-delta-pill.up   { background: rgba(31, 226, 155, .16); color: var(--palette-brand-green-deep); }
.ct-delta-pill.down { background: rgba(214, 69, 69, .14); color: #B23A3A; }

[data-bs-theme=dark] .ct-delta-pill.up   { background: rgba(31, 226, 155, .18); color: #4EF5B8; }
[data-bs-theme=dark] .ct-delta-pill.down { background: rgba(214, 69, 69, .18); color: #EF8686; }

/* ─── 6.5 Barre de progression — polish visuel ────────────────
   (le composant .ct-progress existe déjà ; on affine juste
   l'épaisseur et le radius pour matcher le rendu "pilule" vu
   sur les visuels de référence) */
.ct-progress {
  height: 6px !important;
  border-radius: var(--radius-pill) !important;
  overflow: hidden;
}

.ct-progress-fill {
  border-radius: var(--radius-pill);
}

/* ─── 6.6 Compteurs relance / mise en demeure ─────────────────
   Variante "dot" du badge existant pour les compteurs à 0
   vs > 0, moins lourde qu'un badge plein. */
.ct-badge-dot {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: .8rem;
  color: var(--palette-text-secondary);
}

.ct-badge-dot::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--palette-text-tertiary);
}

.ct-badge-dot.active::before {
  background: var(--palette-coral);
}

.ct-badge-dot.alert::before {
  background: var(--ws-danger, #D64545);
}

/* État vide plus accueillant que "AUCUN" en majuscules */
.ct-empty-soft {
  border: 1px dashed var(--palette-border-warm);
  border-radius: var(--radius-standard);
  padding: var(--spacing-7);
  text-align: center;
  color: var(--palette-text-tertiary);
  font-size: .85rem;
  text-transform: none;
  letter-spacing: normal;
}

/* ─── 6.7 Alerte de session — sort du footer ──────────────────
   Toast discret plutôt qu'un texte rouge collé au copyright. */
.ct-session-toast {
  position: fixed;
  bottom: 20px;
  right: 20px;
  z-index: 1050;
  display: flex;
  align-items: center;
  gap: 10px;
  background: var(--palette-bg-base);
  border: 1px solid var(--palette-border-warm);
  border-radius: var(--radius-standard);
  box-shadow: var(--shadow-hover);
  padding: 10px 14px;
  font-size: .8rem;
  color: var(--palette-text-secondary);
}

.ct-session-toast .ri-time-line,
.ct-session-toast i {
  color: #C6862B;
}

/* Variante compacte pour la topbar, à côté du profil utilisateur */
.ct-session-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  border-radius: var(--radius-pill);
  background: var(--ws-warn-bg, #FBF1E0);
  color: var(--ws-warn-text, #78350f);
  font-size: .74rem;
  font-weight: 600;
  font-family: var(--font-family-mono);
}

[data-bs-theme=dark] .ct-session-toast {
  background: var(--palette-bg-base);
  border-color: var(--palette-border-color);
}

/* ─── 6.8 Colonne latérale — occuper le vide ──────────────────
   Panneau de raccourcis (dossiers récents / filtres sauvegardés)
   pour combler le blanc sous les cartes courtes (ex. "Rechercher"). */
.ct-quick-panel {
  background: var(--palette-bg-base);
  border: 1px solid var(--palette-border-color);
  border-radius: var(--radius-card);
  overflow: hidden;
}

.ct-quick-panel .ct-quick-title {
  padding: var(--spacing-7) var(--spacing-7) var(--spacing-4);
  font-size: .72rem;
  text-transform: none;
  letter-spacing: var(--tracking-label);
  color: var(--palette-text-tertiary);
  font-weight: 600;
}

.ct-quick-panel .ct-quick-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px var(--spacing-7);
  cursor: pointer;
  transition: background var(--ct-transition);
  border-top: 1px solid var(--palette-border-color);
}

.ct-quick-panel .ct-quick-row:first-of-type {
  border-top: none;
}

.ct-quick-panel .ct-quick-row:hover {
  background: var(--palette-surface-tertiary);
}

.ct-quick-panel .ct-quick-row .ri-arrow-right-s-line {
  margin-left: auto;
  color: var(--palette-text-tertiary);
  opacity: 0;
  transition: opacity var(--ct-transition);
}

.ct-quick-panel .ct-quick-row:hover .ri-arrow-right-s-line {
  opacity: 1;
}

/* ─── 6.9 Entête de carte — bouton filtre / actions ───────────
   Chip de filtre à la "Last 6 Months ⌄" vue en référence. */
.ct-filter-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  border-radius: var(--radius-pill);
  border: 1px solid var(--palette-border-color);
  background: var(--palette-bg-base);
  font-size: .78rem;
  font-weight: 500;
  color: var(--palette-text-secondary);
  cursor: pointer;
}

.ct-filter-chip:hover {
  border-color: var(--palette-border-warm);
  background: var(--palette-surface-tertiary);
}

.ct-card-actions {
  display: flex;
  align-items: center;
  gap: 6px;
}

.ct-card-actions .btn-icon {
  width: 30px;
  height: 30px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  border: none;
  background: transparent;
  color: var(--palette-text-tertiary);
}

.ct-card-actions .btn-icon:hover {
  background: var(--palette-surface-tertiary);
  color: var(--palette-text-primary);
}

/* ═══ Cashtimely — sidebar neutre, champs carrés, boutons sobres (style supabase.com) ═══ */

/* Sidebar : même ton que le fond de page, clair comme sombre (plus de vert forêt) */
[data-bs-theme=light] .main-sidebar,
[data-bs-theme=light] [class*="sidebar-dark-"],
[data-bs-theme=light] [class*="sidebar-light-"],
[data-bs-theme=dark] .main-sidebar,
[data-bs-theme=dark] [class*="sidebar-dark-"],
[data-bs-theme=dark] [class*="sidebar-light-"] {
  background: var(--palette-bg-canvas) !important;
  border-right: 1px solid var(--palette-border-color) !important;
  box-shadow: none !important;
}

[data-bs-theme=light] .brand-link,
[data-bs-theme=dark] .brand-link {
  background: transparent !important;
  border-bottom: 1px solid var(--palette-border-color) !important;
}

[data-bs-theme=light] .brand-link .brand-text,
[data-bs-theme=dark] .brand-link .brand-text {
  color: var(--palette-text-primary) !important;
}

[data-bs-theme=light] .nav-sidebar .nav-link,
[data-bs-theme=dark] .nav-sidebar .nav-link {
  color: var(--palette-text-secondary) !important;
  background-color: transparent !important;
}

[data-bs-theme=light] .nav-sidebar .nav-link:hover,
[data-bs-theme=dark] .nav-sidebar .nav-link:hover,
[data-bs-theme=light] .nav-sidebar .nav-link.active,
[data-bs-theme=dark] .nav-sidebar .nav-link.active {
  background-color: var(--palette-surface-secondary) !important;
  color: var(--palette-text-primary) !important;
}

/* Champs de formulaire : angles droits */
[data-bs-theme=light] .form-control,
[data-bs-theme=light] .form-select,
[data-bs-theme=light] select,
[data-bs-theme=light] textarea,
[data-bs-theme=light] .select2-container--bootstrap5 .select2-selection,
[data-bs-theme=dark] .form-control,
[data-bs-theme=dark] .form-select,
[data-bs-theme=dark] select,
[data-bs-theme=dark] textarea,
[data-bs-theme=dark] .select2-container--bootstrap5 .select2-selection {
  border-radius: 6px !important;
}

/* Boutons : hauteur compacte, rayon discret, sans capsule */
[data-bs-theme=light] .btn-primary,
[data-bs-theme=dark] .btn-primary {
  border-radius: 6px !important;
  font-weight: 500 !important;
  font-size: .875rem !important;
  padding: .45rem .9rem !important;
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .08) !important;
}

[data-bs-theme=light] .btn-default,
[data-bs-theme=light] .btn-secondary,
[data-bs-theme=light] .btn-light,
[data-bs-theme=dark] .btn-default,
[data-bs-theme=dark] .btn-secondary,
[data-bs-theme=dark] .btn-light {
  border-radius: 6px !important;
  font-weight: 500 !important;
  font-size: .875rem !important;
  padding: .45rem .9rem !important;
  box-shadow: none !important;
}

/* Pied de page : liens juridiques en première ligne, puis texte et minuteur de session alignés sur la seconde */
.main-footer .ct-footer-links {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .2rem 1rem;
  font-size: 11px;
}
.main-footer .ct-footer-bas {
  display: flex;
  justify-content: center;
  margin-top: .3rem;
  font-size: 11px;
  text-align: center;
}
/* Le minuteur de session (.msTimer) reste dans .ew-footer-text : le script l'y cherche */
.main-footer .ct-footer-bas .ew-footer-text {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: .2rem 1rem;
  margin: 0;
  padding: 0 48px; /* marge symétrique : le centre reste juste, le bouton « haut de page » ne recouvre rien */
  font-size: 11px;
}
.main-footer .ct-footer-bas .msTimer,
.main-footer .ct-footer-bas .msTimer * {
  font-size: 11px !important;
  line-height: 1.4;
}
.main-footer .ct-footer-links a {
  color: var(--palette-text-secondary);
  text-decoration: none;
}
.main-footer .ct-footer-links a:hover {
  color: var(--palette-text-primary);
  text-decoration: underline;
}

/* Rayons Regulatis : 6 px partout (champs, boutons, cartes) */
:root {
  --bs-border-radius: 6px;
  --bs-border-radius-sm: 6px;
  --bs-border-radius-lg: 6px;
  --bs-border-radius-xl: 6px;
  --bs-border-radius-2xl: 6px;
  --bs-border-radius-pill: 6px;
}
.btn {
  --bs-btn-border-radius: 6px;
}
html body *:not(button):not(.btn):not(.img-circle):not([type=radio]):not(th):not(td) {
  border-radius: 6px !important;
}
html body *:not(button):not(.btn):not(.img-circle):not([type=radio]):not(th):not(td)::before,
html body *:not(button):not(.btn):not(.img-circle):not([type=radio]):not(th):not(td)::after {
  border-radius: 6px !important;
}
input[type=radio], .img-circle {
  border-radius: 50% !important;
}

/* Champs Regulatis : 38 px, texte 14 px, bordure fine, rayon 6 px, focus noir */
html body input[type=text],
html body input[type=search],
html body input[type=number],
html body input[type=email],
html body input[type=password],
html body input[type=date],
html body textarea,
html body select {
  width: 100%;
  min-height: 32px;
  margin: 0;
  padding: 6px 10px;
  color: var(--palette-text-primary);
  background: var(--palette-bg-base);
  border: 1px solid var(--palette-border-color);
  border-radius: 6px !important;
  box-shadow: none;
  font-family: "Inter", "Segoe UI", Roboto, system-ui, sans-serif;
  font-size: 14px;
  line-height: 1.5;
}
html body textarea {
  min-height: 108px;
  resize: vertical;
}
html body input[type=text]:focus,
html body input[type=search]:focus,
html body input[type=number]:focus,
html body input[type=email]:focus,
html body input[type=password]:focus,
html body input[type=date]:focus,
html body textarea:focus,
html body select:focus {
  outline: 2px solid var(--palette-text-primary);
  outline-offset: 2px;
  border-color: var(--palette-text-primary);
}

/* Fenêtres alertify (À propos, Conditions…) : icônes 10 px sans répétition, bouton OK lisible */
html body .alertify .ajs-commands button {
  width: auto;
  height: auto;
  min-width: 0;
  margin-left: 10px;
  padding: 10px;
  background-color: transparent !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: 10px 10px !important;
  border: 0 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
}
/* Tableaux Regulatis : en-tête gris clair de 32 px, texte discret 12 px en casse normale, lignes fines, survol doux */
/* Bande continue : une seule surface sur la ligne d'en-tête, sans séparateur entre les cellules, léger relief dessous */
/* Tableaux : cadre fin arrondi, espacement nul pour une bande continue */
html body .ws-page table {
  border: 1px solid var(--palette-border-color);
  border-collapse: separate;
  border-spacing: 0;
  border-radius: 6px;
  overflow: hidden;
  background: var(--palette-bg-base);
}
html body .ws-page table thead tr {
  background: var(--palette-surface-secondary);
  box-shadow: 0 1px 2px rgba(0, 0, 0, .08);
}
html body .ws-page table thead th {
  height: 32px;
  padding: 0 12px;
  color: var(--palette-text-secondary);
  background: transparent;
  border: 0;
  border-radius: 0 !important;
  box-shadow: none;
  font-size: 12px;
  font-weight: 450;
  letter-spacing: .04em;
  text-transform: lowercase;
}
html body .ws-page table thead th::first-letter {
  text-transform: uppercase;
}
html body .ws-page table tbody td {
  padding: 6px 12px;
  font-size: 12px;
  vertical-align: middle;
  border-bottom: 1px solid var(--palette-border-color);
}
html body .ws-page table tbody tr:hover td {
  background: var(--palette-surface-secondary);
}

/* Groupes de boutons des filtres : texte sur une ligne, retour à la ligne entre boutons si la carte est étroite */
html body .f-btn {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}
html body .f-btn button {
  white-space: nowrap;
}

/* Notifications workspace : fond neutre Regulatis, croix de fermeture à taille normale */
html body .ws-native-toast {
  background: var(--palette-bg-base) !important;
  color: var(--palette-text-primary) !important;
  border: 1px solid var(--palette-border-color);
  border-radius: 6px;
  box-shadow: none;
}
html body .ws-native-toast .toast-header,
html body .ws-native-toast .toast-body {
  background: transparent !important;
  color: var(--palette-text-primary) !important;
}
html body .ws-native-toast .btn-close {
  width: 1em;
  height: 1em;
  min-width: 0;
  padding: .25em;
  background-color: transparent !important;
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23334155'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414'/%3e%3c/svg%3e") !important;
  background-repeat: no-repeat;
  background-position: center;
  background-size: 1em;
  filter: none !important;
  border: 0 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  opacity: .75;
}
html body .alertify .ajs-footer .ajs-button.btn-primary {
  color: var(--rg-primary-fg) !important;
  background: var(--rg-primary) !important;
}
html body .alertify .ajs-footer .ajs-button.btn-primary:hover {
  color: var(--rg-primary-fg) !important;
  background: var(--rg-primary-hover) !important;
}
html[data-bs-theme=light] .btn-primary,
html[data-bs-theme=light] .ws-page .btn-primary {
  color: #fff !important;
}

/* ── Habillage Regulatis (supabase.css, dernier chargé = valeurs effectives) : jetons, boutons, en-tête, pied ── */
@font-face { font-family: "Inter"; font-style: normal; font-weight: 100 900; font-display: swap; src: url("../fonts/inter-latin-ext-wght-normal.woff2") format("woff2-variations"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 100 900; font-display: swap; src: url("../fonts/inter-latin-wght-normal.woff2") format("woff2-variations"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
:root {
  --palette-bg-canvas: oklch(0.995 0 157.5);
  --palette-bg-base: oklch(0.995 0 157.5);
  --palette-surface-secondary: oklch(0.971 0 157.5);
  --palette-surface-tertiary: oklch(0.955 0 157.5);
  --palette-text-primary: oklch(0.1 0 157.5);
  --palette-text-secondary: oklch(0.45 0 157.5);
  --palette-text-tertiary: oklch(0.58 0 157.5);
  --palette-border-color: oklch(0.915 0 157.5);
  --palette-border-warm: oklch(0.86 0 157.5);
  --palette-coral: oklch(0.1 0 157.5);
  --palette-brand-green-deep: oklch(0.1 0 157.5);
  --rg-btn-bg: oklch(0.995 0 157.5);
  --rg-btn-border: oklch(0.86 0 157.5);
  --rg-btn-hover: oklch(0.965 0 157.5);
  --rg-shadow-raised: inset 0 1px 0 rgba(255, 255, 255, .5), 0 1px 2px rgba(0, 0, 0, .07);
  --rg-primary: oklch(0.1 0 157.5);
  --rg-primary-hover: oklch(0.25 0 157.5);
  --rg-primary-fg: oklch(0.99 0.00275 157.5);
}
[data-bs-theme=dark] {
  --palette-bg-canvas: oklch(0.19 0.005 157.5);
  --palette-bg-base: oklch(0.215 0.005 157.5);
  --palette-surface-secondary: oklch(0.24 0.005 157.5);
  --palette-surface-tertiary: oklch(0.27 0.005 157.5);
  --palette-text-primary: oklch(0.95 0.005 157.5);
  --palette-text-secondary: oklch(0.72 0.005 157.5);
  --palette-text-tertiary: oklch(0.58 0.005 157.5);
  --palette-border-color: oklch(0.285 0.005 157.5);
  --palette-border-warm: oklch(0.34 0.005 157.5);
  --palette-coral: oklch(0.95 0.005 157.5);
  --palette-brand-green-deep: oklch(0.95 0.005 157.5);
  --rg-btn-bg: oklch(0.26 0.005 157.5);
  --rg-btn-border: oklch(0.36 0.005 157.5);
  --rg-btn-hover: oklch(0.31 0.005 157.5);
  --rg-shadow-raised: inset 0 1px 0 rgba(255, 255, 255, .06), 0 1px 2px rgba(0, 0, 0, .3);
  --rg-primary: oklch(0.95 0.005 157.5);
  --rg-primary-hover: oklch(1 0 157.5);
  --rg-primary-fg: oklch(0.19 0.005 157.5);
}

html body {
  font-family: "Inter", "Segoe UI", Roboto, system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 14px;
  font-weight: 450;
  line-height: 1.5;
  letter-spacing: 0;
  font-feature-settings: "cv11", "ss01";
  -webkit-font-smoothing: antialiased;
}

/* Boutons : tiny Regulatis (26 px, 13 px, rayon 6 px, bordure et ombre de jeton) */
html body .btn-primary,
html body .btn-sec,
html body .btn-default,
html body .btn-secondary,
html body .btn-outline-secondary,
html body .btn-light,
html body .btn-discret {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 26px;
  padding: 4px 10px;
  font-size: 13px;
  font-weight: 450;
  line-height: 1.33;
  border: 1px solid var(--rg-btn-border);
  border-radius: 6px !important;
  box-shadow: var(--rg-shadow-raised);
  transition: background-color .12s ease, border-color .12s ease, color .12s ease;
}
html body .btn-sec,
html body .btn-default,
html body .btn-secondary,
html body .btn-outline-secondary,
html body .btn-light {
  color: var(--palette-text-primary);
  background: var(--rg-btn-bg);
}
html body .btn-sec:hover,
html body .btn-default:hover,
html body .btn-secondary:hover,
html body .btn-outline-secondary:hover,
html body .btn-light:hover {
  color: var(--palette-text-primary);
  background: var(--rg-btn-hover);
  border-color: var(--palette-border-warm);
}
html body .btn-primary {
  color: var(--rg-primary-fg) !important;
  background: var(--rg-primary);
  border-color: transparent;
}
html body .btn-primary:hover:not(:disabled) {
  color: var(--rg-primary-fg) !important;
  background: var(--rg-primary-hover);
}
html body .btn-discret {
  background: transparent;
  border-color: transparent;
  box-shadow: none;
  color: var(--palette-text-secondary);
}
html body .btn-discret:hover {
  background: var(--palette-surface-secondary);
  color: var(--palette-text-primary);
}
html body .btn:disabled {
  opacity: .5;
  cursor: not-allowed;
}

/* En-tête : barre de 48 px, fond de surface, filet bas (topbar Regulatis) */
html body .main-header.navbar {
  min-height: 48px;
  padding: 0 clamp(16px, 3vw, 32px);
  gap: 12px;
  background: var(--palette-bg-base);
  border-bottom: 1px solid var(--palette-border-color);
  box-shadow: none;
}
html body .main-header .ws-hdr-clock {
  font-size: 12px;
  color: var(--palette-text-secondary);
}

/* Pied de page : centré, 12 px, filet haut, liens soulignés (pied-page Regulatis) */
html body .main-footer {
  margin: 24px 0 0;
  padding: 8px 16px;
  text-align: center;
  font-size: 11px;
  color: var(--palette-text-secondary);
  background: transparent;
  border-top: 1px solid var(--palette-border-color);
}
html body .main-footer a {
  color: inherit;
  text-decoration: underline;
}

/* Page de connexion : identifiant et mot de passe identiques, bouton œil intégré au champ */
#flogin .form-control {
  border-radius: 6px !important;
}
#flogin .input-group > .form-control {
  border-radius: 6px 0 0 6px !important;
}
#flogin .ew-toggle-password {
  border-radius: 0 6px 6px 0 !important;
  border-left: 0;
  background: var(--palette-bg-base);
}

/* Pages natives PHP Maker (administration) : même charte que les tableaux des workspaces */
html body .main-sidebar .user-panel {
  display: none !important;
}
html body .ew-table {
  width: 100%;
  border-collapse: collapse;
  font-size: .82rem;
}
html body .ew-table > thead > tr > th {
  background: var(--palette-surface-tertiary) !important;
  border-bottom: 2px solid var(--palette-border-color) !important;
  padding: 8px 12px;
  text-align: left;
  font-size: .67rem;
  font-weight: 700;
  text-transform: lowercase !important;
  letter-spacing: .04em;
  color: var(--palette-text-secondary) !important;
  white-space: nowrap;
}
html body .ew-table > thead > tr > th::first-letter,
html body .ew-table > thead > tr > th .ew-table-header-caption::first-letter {
  text-transform: uppercase !important;
}
html body .ew-table > thead > tr > th .ew-table-header-caption {
  text-transform: lowercase;
}
html body .ew-table > tbody > tr > td {
  padding: 8px 12px;
  border-bottom: 1px solid var(--palette-border-color);
  vertical-align: top;
}
html body .ew-table > thead > tr > th,
html body .ew-table .ew-table-header-cell {
  outline: none !important;
  box-shadow: none !important;
}
html body .ew-table.table-bordered > :not(caption) > * > * {
  border-width: 0 0 1px 0 !important;
}
html body .ew-table.table-bordered > thead > tr > th {
  border-width: 0 0 2px 0 !important;
}
html body .card.ew-grid .card-header.ew-grid-upper-panel {
  background-color: var(--palette-bg-base) !important;
}
html body .card.ew-grid .card-header.ew-grid-upper-panel {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}
html body .ew-grid-upper-panel .ew-export-option {
  margin-left: auto;
}
