/* ── Police locale ──────────────────────────────────────────────────────── */
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url('/assets/fonts/plus-jakarta-sans.woff2') format('woff2');
}

/* ── Variables brand Tabler ─────────────────────────────────────────────── */
:root {
  --tblr-font-sans-serif: 'Plus Jakarta Sans', sans-serif;
  --tblr-primary: #2563EB;
  --tblr-primary-rgb: 37, 99, 235;
  --tblr-card-border-radius: .5rem;
}

/* ── Sidebar couleur — harmonisé Tabler dark (#1f2937 = --tblr-dark) ─────── */
.navbar-vertical.navbar-expand-lg {
  --tblr-navbar-bg: #1f2937;
}

/* ── Sidebar : masquer scrollbar interne ─────────────────────────────────── */
.navbar-vertical .navbar-collapse {
  overflow-y: auto;
  overflow-x: hidden;
  scrollbar-width: none;
}
.navbar-vertical .navbar-collapse::-webkit-scrollbar {
  display: none;
}

/* ── Live dot ────────────────────────────────────────────────────────────── */
@keyframes livePulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50%       { opacity: .4; transform: scale(.8); }
}
.live-dot {
  width: 6px;
  height: 6px;
  background: #2fb344;
  border-radius: 50%;
  display: inline-block;
  animation: livePulse 1.5s ease-in-out infinite;
}

/* ── Sidebar : labels de section ─────────────────────────────────────────── */
.nav-link-subtitle {
  font-size: .625rem;
  font-weight: 700;
  color: rgba(255, 255, 255, .25) !important;
  letter-spacing: .08em;
  text-transform: uppercase;
  padding: 1rem 1rem .25rem;
  display: block;
}

/* ── Logo sidebar — override Tabler height:2rem ──────────────────────────── */
.navbar-brand-image {
  height: 3rem !important;
  width: auto !important;
}

/* ── KPI subheader — plus visible ────────────────────────────────────────── */
.subheader {
  font-weight: 700;
}

/* ── Conseiller buttons hover — gris clair cohérent avec dropdown ────────── */
.btn-ghost-secondary:hover,
.btn-ghost-secondary:focus,
.btn-ghost-primary:hover,
.btn-ghost-primary:focus {
  background-color: #f1f5f9 !important;
  color: var(--tblr-primary) !important;
}

/* ── Sidebar : badge inline (pas de position:absolute comme topbar) ──────── */
.navbar-vertical .navbar-nav .nav-link .badge {
  position: static !important;
  transform: none !important;
  margin-left: auto;
}

/* ── Utilitaires texte ───────────────────────────────────────────────────── */
.text-xs  { font-size:.7rem; }
.text-xxs { font-size:.72rem; }

/* ── Horloge topbar ──────────────────────────────────────────────────────── */
.crm-clock { font-size:.78rem; font-variant-numeric:tabular-nums; }

/* ── Badge Live (dashboard) ──────────────────────────────────────────────── */
.badge-live { background:#dcfce7; color:#166534; display:inline-flex; align-items:center; gap:5px; font-size:.65rem; }

/* ── Badge statut (dashboard) ───────────────────────────────────────────── */
.badge-stat { font-size:.78rem; }

/* ── Barre de filtres leads ──────────────────────────────────────────────── */
.crm-search-group { width:210px; flex-shrink:0; }

/* ── Badge document cliquable ────────────────────────────────────────────── */
.badge-doc { cursor:pointer; gap:4px; display:inline-flex; align-items:center; padding:4px 8px; }

/* ── Mini avatar conseiller (tableau leads) ──────────────────────────────── */
.crm-mini-avatar { width:20px; height:20px; border-radius:50%; background:var(--tblr-gray-200); color:var(--tblr-gray-600); display:inline-flex; align-items:center; justify-content:center; flex-shrink:0; }

/* ── Taille texte 0.82rem (detail leads) ────────────────────────────────── */
.text-sm-crm { font-size:.82rem; }

/* ── Champ requis asterisque ─────────────────────────────────────────────── */
.text-required { color:#ef4444; }

/* ── min-width:0 (requis pour text-truncate dans flex) ──────────────────── */
.min-w-0 { min-width:0; }

/* ── Curseur pointeur (badge/élément cliquable sans lien) ────────────────── */
.cursor-pointer { cursor:pointer; }

/* ── Word break ──────────────────────────────────────────────────────────── */
.word-break-all { word-break:break-all; }

/* ── Zone upload document ────────────────────────────────────────────────── */
.crm-upload-zone { border:2px dashed #cbd5e1; border-radius:10px; padding:20px; text-align:center; cursor:pointer; transition:all .2s; }
.crm-upload-zone:hover { border-color:var(--tblr-primary); background:#f8faff; }
.crm-upload-label { font-size:.82rem; font-weight:600; color:#64748b; }
.crm-upload-hint  { font-size:.7rem; color:#94a3b8; margin-top:3px; }

/* ── Chart containers ────────────────────────────────────────────────────── */
.chart-container { height:280px; position:relative; }
.chart-legend-dot { width:10px; height:10px; border-radius:3px; display:inline-block; flex-shrink:0; }

/* ── Table utilitaires ───────────────────────────────────────────────────── */
.progress-table { min-width:60px; }
.progress-xs    { height:3px; }
.legend-dot      { width:8px; height:8px; border-radius:50%; display:inline-block; flex-shrink:0; }
.table-row-alert td:first-child { border-left:3px solid var(--tblr-red); }
.table-row-top td { background-color:#fefce8 !important; }

/* ── Fiche client table ───────────────────────────────────────────────────── */
.fiche-table { width:100%; border-collapse:collapse; }
.fiche-td-label { padding:8px 0; width:40%; font-size:.78rem; font-weight:700; color:#64748b; border-bottom:1px solid #f1f5f9; }
.fiche-td-value { padding:8px 0; font-size:.82rem; color:#0f172a; border-bottom:1px solid #f1f5f9; }
.fiche-td-section { padding:10px 0 6px; font-size:.68rem; font-weight:700; color:#2563EB; text-transform:uppercase; letter-spacing:.07em; border-top:2px solid #dbeafe; }
