/* ============================================================
   AJAG Back-Office — Design System v4.0 "Sunrise"
   Style : Light SaaS · Plus Jakarta Sans · Prodify-inspired
   Animations : CSS keyframes + Lottie · WCAG 2.2 AA
   ============================================================ */

/* ── 0. Variables CSS ─────────────────────────────────────── */
:root {
  /* Palette Sunrise (défaut) */
  --ajag-bg:            #EEF2FF;
  --ajag-sidebar-bg:    #FFFFFF;
  --ajag-card-bg:       #FFFFFF;
  --ajag-border:        #E2E8F0;
  --ajag-border-soft:   #F1F5F9;

  --ajag-primary:       #1B4B9C;
  --ajag-primary-dark:  #0F2D6A;
  --ajag-primary-light: #EEF2FF;
  --ajag-gold:          #F5C200;
  --ajag-gold-light:    #FEF9E7;
  --ajag-purple:        #7C3AED;
  --ajag-purple-light:  #F5F3FF;

  --ajag-success:       #22C55E;
  --ajag-success-light: #DCFCE7;
  --ajag-danger:        #EF4444;
  --ajag-danger-light:  #FEE2E2;
  --ajag-warning:       #F59E0B;
  --ajag-warning-light: #FEF3C7;
  --ajag-info:          #3B82F6;
  --ajag-info-light:    #DBEAFE;

  --ajag-text:          #0F172A;
  --ajag-text-soft:     #475569;
  --ajag-text-muted:    #94A3B8;

  --ajag-radius-sm:     8px;
  --ajag-radius:        12px;
  --ajag-radius-lg:     16px;
  --ajag-radius-xl:     20px;
  --ajag-radius-pill:   999px;

  --ajag-shadow-sm:     0 1px 3px rgba(15,23,42,.06), 0 1px 2px rgba(15,23,42,.04);
  --ajag-shadow:        0 4px 12px rgba(27,75,156,.08), 0 1px 3px rgba(15,23,42,.06);
  --ajag-shadow-lg:     0 8px 32px rgba(27,75,156,.12), 0 2px 8px rgba(15,23,42,.08);
  --ajag-shadow-gold:   0 4px 16px rgba(245,194,0,.25);

  --ajag-sidebar-w:     260px;
  --ajag-anim-fast:     150ms;
  --ajag-anim:          250ms;
  --ajag-anim-slow:     400ms;
}

/* Thème Ocean */
[data-ajag-theme="ocean"] {
  --ajag-bg:            #F0F7FF;
  --ajag-primary:       #0369A1;
  --ajag-primary-dark:  #0C4A6E;
  --ajag-primary-light: #E0F2FE;
  --ajag-gold:          #F59E0B;
  --ajag-purple:        #0EA5E9;
  --ajag-purple-light:  #E0F2FE;
}

/* Thème Twilight */
[data-ajag-theme="twilight"] {
  --ajag-bg:            #F5F3FF;
  --ajag-primary:       #7C3AED;
  --ajag-primary-dark:  #5B21B6;
  --ajag-primary-light: #EDE9FE;
  --ajag-gold:          #F59E0B;
  --ajag-purple:        #EC4899;
  --ajag-purple-light:  #FDF2F8;
}

/* Mode sombre (glass-navy préservé) */
[data-ajag-theme="glass-navy"],
[data-theme-mode="dark"] {
  --ajag-bg:            #0D1B3E;
  --ajag-sidebar-bg:    #0C1F4A;
  --ajag-card-bg:       #132044;
  --ajag-border:        rgba(255,255,255,.08);
  --ajag-border-soft:   rgba(255,255,255,.05);
  --ajag-text:          #F1F5F9;
  --ajag-text-soft:     #94A3B8;
  --ajag-text-muted:    #64748B;
  --ajag-primary-light: rgba(245,194,0,.15);
  --ajag-shadow-sm:     0 1px 3px rgba(0,0,0,.3);
  --ajag-shadow:        0 4px 16px rgba(0,0,0,.4);
  --ajag-shadow-lg:     0 8px 32px rgba(0,0,0,.5);
}

/* ── 1. Reset & Font ───────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }

*, body, .fi-body {
  font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* ── 2. Keyframes animations ───────────────────────────────── */
@keyframes ajag-fade-up {
  from { opacity: 0; transform: translateY(12px); }
  to   { opacity: 1; transform: translateY(0); }
}

@keyframes ajag-fade-in {
  from { opacity: 0; }
  to   { opacity: 1; }
}

@keyframes ajag-slide-right {
  from { opacity: 0; transform: translateX(-8px); }
  to   { opacity: 1; transform: translateX(0); }
}

@keyframes ajag-scale-in {
  from { opacity: 0; transform: scale(0.95); }
  to   { opacity: 1; transform: scale(1); }
}

@keyframes ajag-pulse-gold {
  0%, 100% { box-shadow: 0 0 0 0 rgba(245,194,0,0); }
  50%       { box-shadow: 0 0 0 6px rgba(245,194,0,0.2); }
}

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

@keyframes ajag-shimmer {
  0%   { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}

@keyframes ajag-float {
  0%, 100% { transform: translateY(0px); }
  50%       { transform: translateY(-6px); }
}

@keyframes ajag-count-up {
  from { opacity: 0; transform: translateY(8px) scale(0.9); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes ajag-sidebar-item {
  from { opacity: 0; transform: translateX(-6px); }
  to   { opacity: 1; transform: translateX(0); }
}

@keyframes ajag-card-in {
  from { opacity: 0; transform: translateY(16px) scale(0.98); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}

/* Respect prefers-reduced-motion */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
}

/* ── 3. Page background ────────────────────────────────────── */
body.fi-body {
  background-color: var(--ajag-bg) !important;
  animation: ajag-fade-in var(--ajag-anim) ease !important;
}

.fi-main-ctn, .fi-layout, .fi-simple-layout, .fi-simple-main-ctn {
  opacity: 1 !important;
}

/* ── 4. Sidebar ────────────────────────────────────────────── */
aside.fi-sidebar,
aside.fi-main-sidebar,
.fi-main-sidebar {
  background-color: var(--ajag-sidebar-bg) !important;
  border-right: 1px solid var(--ajag-border) !important;
  box-shadow: 2px 0 20px rgba(15,23,42,.04) !important;
  transition: width var(--ajag-anim) ease !important;
}

.fi-sidebar-header {
  background-color: var(--ajag-sidebar-bg) !important;
  border-bottom: 1px solid var(--ajag-border-soft) !important;
  padding: 1.25rem 1rem !important;
}

.fi-sidebar-nav {
  background-color: var(--ajag-sidebar-bg) !important;
  padding: 0.5rem 0.75rem !important;
}

/* ── Logo AJAG ── */
.fi-sidebar-header .fi-brand-name, .fi-brand-name {
  color: var(--ajag-primary) !important;
  font-weight: 800 !important;
  font-size: 1rem !important;
  letter-spacing: -0.02em !important;
}

/* ── Groupes sidebar ── */
.fi-sidebar-group-label, .fi-sidebar-group-label span {
  font-size: 0.625rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  color: var(--ajag-text-muted) !important;
  padding: 0.75rem 0.5rem 0.25rem !important;
}

/* ── Items sidebar ── */
.fi-sidebar-item-button {
  border-radius: var(--ajag-radius-sm) !important;
  margin: 2px 0 !important;
  padding: 0.5rem 0.75rem !important;
  position: relative !important;
  transition:
    background-color var(--ajag-anim-fast) ease,
    transform var(--ajag-anim-fast) ease !important;
  animation: ajag-sidebar-item var(--ajag-anim) ease both !important;
}

.fi-sidebar-item-button:hover {
  background-color: var(--ajag-primary-light) !important;
  transform: translateX(2px) !important;
}

.fi-sidebar-item-icon {
  color: var(--ajag-text-muted) !important;
  transition: color var(--ajag-anim-fast) ease !important;
}

.fi-sidebar-item-button:hover .fi-sidebar-item-icon {
  color: var(--ajag-primary) !important;
}

.fi-sidebar-item-label {
  color: var(--ajag-text-soft) !important;
  font-size: 0.875rem !important;
  font-weight: 500 !important;
  transition: color var(--ajag-anim-fast) ease !important;
}

.fi-sidebar-item-button:hover .fi-sidebar-item-label {
  color: var(--ajag-primary) !important;
}

/* ── Item actif ── */
.fi-sidebar-item.fi-active .fi-sidebar-item-button,
.fi-sidebar-item.fi-sidebar-item-active .fi-sidebar-item-button,
.fi-sidebar-item-button[aria-current="page"] {
  background: linear-gradient(135deg, var(--ajag-primary-light), rgba(27,75,156,.06)) !important;
  box-shadow: inset 3px 0 0 var(--ajag-primary) !important;
}

.fi-sidebar-item.fi-active .fi-sidebar-item-icon,
.fi-sidebar-item.fi-sidebar-item-active .fi-sidebar-item-icon {
  color: var(--ajag-primary) !important;
}

.fi-sidebar-item.fi-active .fi-sidebar-item-label,
.fi-sidebar-item.fi-sidebar-item-active .fi-sidebar-item-label {
  color: var(--ajag-primary) !important;
  font-weight: 700 !important;
}

/* ── Footer sidebar ── */
.fi-sidebar-footer {
  background-color: var(--ajag-sidebar-bg) !important;
  border-top: 1px solid var(--ajag-border-soft) !important;
  padding: 0.75rem !important;
}

/* ── Card "Onboarding" en bas sidebar ── */
.ajag-sidebar-cta {
  margin: 0.75rem;
  padding: 1rem;
  background: linear-gradient(135deg, var(--ajag-primary), #2563EB);
  border-radius: var(--ajag-radius);
  color: white;
  font-size: 0.8125rem;
  line-height: 1.5;
  cursor: pointer;
  transition: transform var(--ajag-anim-fast) ease, box-shadow var(--ajag-anim-fast) ease;
  animation: ajag-float 4s ease-in-out infinite;
}

.ajag-sidebar-cta:hover {
  transform: translateY(-2px);
  box-shadow: var(--ajag-shadow-lg);
  animation-play-state: paused;
}

.ajag-sidebar-cta lottie-player {
  float: right;
  margin: -8px -8px 0 8px;
}

/* ── Scrollbar sidebar ── */
.fi-sidebar-nav::-webkit-scrollbar { width: 3px !important; }
.fi-sidebar-nav::-webkit-scrollbar-track { background: transparent !important; }
.fi-sidebar-nav::-webkit-scrollbar-thumb {
  background: var(--ajag-border) !important;
  border-radius: 4px !important;
}

/* ── 5. Topbar ─────────────────────────────────────────────── */
.fi-topbar, .fi-topbar nav {
  background-color: var(--ajag-sidebar-bg) !important;
  border-bottom: 1px solid var(--ajag-border) !important;
  box-shadow: none !important;
  backdrop-filter: blur(8px) !important;
}

/* ── 6. Main content ───────────────────────────────────────── */
.fi-main-ctn, .fi-main {
  background-color: var(--ajag-bg) !important;
}

/* ── 7. Page header ────────────────────────────────────────── */
.fi-header {
  padding-top: 2rem !important;
  padding-bottom: 1rem !important;
  animation: ajag-fade-up var(--ajag-anim) ease both !important;
}

h1.fi-header-heading, .fi-header-heading {
  font-size: 1.5rem !important;
  font-weight: 800 !important;
  color: var(--ajag-text) !important;
  letter-spacing: -0.03em !important;
  line-height: 1.2 !important;
}

.fi-header-subheading {
  color: var(--ajag-text-muted) !important;
  font-size: 0.875rem !important;
  margin-top: 0.25rem !important;
}

/* ── 8. Breadcrumbs ────────────────────────────────────────── */
.fi-breadcrumbs ol { font-size: 0.8125rem !important; }
.fi-breadcrumbs-item-label { color: var(--ajag-text-muted) !important; }
.fi-breadcrumbs-item:last-child .fi-breadcrumbs-item-label {
  color: var(--ajag-text) !important;
  font-weight: 600 !important;
}

/* ── 9. Sections / cartes ──────────────────────────────────── */
.fi-section {
  background-color: var(--ajag-card-bg) !important;
  border: 1px solid var(--ajag-border) !important;
  border-radius: var(--ajag-radius-lg) !important;
  box-shadow: var(--ajag-shadow-sm) !important;
  overflow: hidden !important;
  transition: box-shadow var(--ajag-anim) ease, transform var(--ajag-anim) ease !important;
  animation: ajag-card-in var(--ajag-anim-slow) ease both !important;
}

.fi-section:hover {
  box-shadow: var(--ajag-shadow) !important;
  transform: translateY(-1px) !important;
}

.fi-section-header {
  border-bottom: 1px solid var(--ajag-border-soft) !important;
  padding: 1.25rem 1.5rem !important;
  background-color: var(--ajag-card-bg) !important;
}

.fi-section-header-heading {
  font-size: 1rem !important;
  font-weight: 700 !important;
  color: var(--ajag-text) !important;
  letter-spacing: -0.01em !important;
}

.fi-section-content {
  padding: 1.5rem !important;
  background-color: var(--ajag-card-bg) !important;
}

/* ── 10. Stats / KPI Widgets ───────────────────────────────── */
.fi-wi-stats-overview-stat {
  background-color: var(--ajag-card-bg) !important;
  border: 1px solid var(--ajag-border) !important;
  border-radius: var(--ajag-radius-lg) !important;
  box-shadow: var(--ajag-shadow-sm) !important;
  transition: box-shadow var(--ajag-anim) ease, transform var(--ajag-anim) ease !important;
  animation: ajag-card-in var(--ajag-anim-slow) ease both !important;
  overflow: hidden !important;
  position: relative !important;
}

.fi-wi-stats-overview-stat::before {
  content: '' !important;
  position: absolute !important;
  top: 0; left: 0; right: 0 !important;
  height: 3px !important;
  background: linear-gradient(90deg, var(--ajag-primary), var(--ajag-gold)) !important;
}

.fi-wi-stats-overview-stat:hover {
  box-shadow: var(--ajag-shadow) !important;
  transform: translateY(-2px) !important;
}

.fi-wi-stats-overview-stat-value {
  font-size: 2rem !important;
  font-weight: 800 !important;
  color: var(--ajag-text) !important;
  letter-spacing: -0.04em !important;
  line-height: 1 !important;
  animation: ajag-count-up var(--ajag-anim-slow) ease both !important;
}

.fi-wi-stats-overview-stat-label {
  font-size: 0.6875rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  color: var(--ajag-text-muted) !important;
}

.fi-wi-stats-overview-stat-description {
  font-size: 0.8125rem !important;
  color: var(--ajag-text-soft) !important;
}

/* ── 11. Tables ─────────────────────────────────────────────── */
.fi-ta-table {
  border-radius: var(--ajag-radius) !important;
  overflow: hidden !important;
  animation: ajag-fade-up var(--ajag-anim-slow) ease both !important;
}

.fi-ta-header-cell {
  background-color: var(--ajag-bg) !important;
  font-size: 0.6875rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  color: var(--ajag-text-muted) !important;
  border-bottom: 1px solid var(--ajag-border) !important;
  padding-top: 0.875rem !important;
  padding-bottom: 0.875rem !important;
}

.fi-ta-row {
  border-bottom: 1px solid var(--ajag-border-soft) !important;
  transition: background-color var(--ajag-anim-fast) ease !important;
}

.fi-ta-row:hover td {
  background-color: var(--ajag-primary-light) !important;
}

.fi-ta-cell {
  font-size: 0.875rem !important;
  color: var(--ajag-text-soft) !important;
  padding-top: 1rem !important;
  padding-bottom: 1rem !important;
}

/* ── Empty state avec Lottie ── */
.fi-ta-empty-state {
  padding: 4rem 2rem !important;
  text-align: center !important;
}

.fi-ta-empty-state-icon {
  display: none !important; /* Remplacé par Lottie via ajag-empty-state */
}

.ajag-empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  padding: 4rem 2rem;
  animation: ajag-fade-up var(--ajag-anim-slow) ease both;
}

.ajag-empty-state lottie-player {
  animation: ajag-float 4s ease-in-out infinite;
}

.ajag-empty-state h3 {
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--ajag-text);
  margin: 0;
  letter-spacing: -0.02em;
}

.ajag-empty-state p {
  font-size: 0.875rem;
  color: var(--ajag-text-muted);
  margin: 0;
  max-width: 300px;
  text-align: center;
  line-height: 1.6;
}

/* ── 12. Boutons ────────────────────────────────────────────── */
.fi-btn {
  border-radius: var(--ajag-radius-pill) !important;
  font-weight: 600 !important;
  font-size: 0.875rem !important;
  transition:
    background-color var(--ajag-anim-fast) ease,
    box-shadow var(--ajag-anim-fast) ease,
    transform var(--ajag-anim-fast) ease !important;
  cursor: pointer !important;
}

.fi-btn:hover { transform: translateY(-1px) !important; }
.fi-btn:active { transform: translateY(0) !important; }

.fi-btn-primary,
button[class*="fi-btn"][class*="primary"],
[class*="fi-btn-color-primary"] {
  background: linear-gradient(135deg, var(--ajag-primary), #2563EB) !important;
  color: #FFFFFF !important;
  border: none !important;
  box-shadow: 0 2px 8px rgba(27,75,156,.25) !important;
}

.fi-btn-primary:hover,
button[class*="fi-btn"][class*="primary"]:hover {
  box-shadow: 0 6px 20px rgba(27,75,156,.35) !important;
}

/* ── 13. Inputs / Formulaires ───────────────────────────────── */
.fi-fo-field-wrp-label, .fi-fo-field-wrp label {
  font-size: 0.875rem !important;
  font-weight: 600 !important;
  color: var(--ajag-text) !important;
  letter-spacing: -0.01em !important;
}

.fi-input, input.fi-input, textarea.fi-input, select.fi-input {
  border: 1.5px solid var(--ajag-border) !important;
  border-radius: var(--ajag-radius-sm) !important;
  font-size: 0.875rem !important;
  color: var(--ajag-text) !important;
  background-color: var(--ajag-card-bg) !important;
  transition: border-color var(--ajag-anim-fast) ease, box-shadow var(--ajag-anim-fast) ease !important;
  font-family: 'Plus Jakarta Sans', sans-serif !important;
}

.fi-input:focus, input.fi-input:focus {
  border-color: var(--ajag-primary) !important;
  box-shadow: 0 0 0 3px rgba(27,75,156,.12) !important;
  outline: none !important;
}

/* ── 14. Badges / Pills ─────────────────────────────────────── */
.fi-badge {
  border-radius: var(--ajag-radius-pill) !important;
  font-size: 0.6875rem !important;
  font-weight: 700 !important;
  padding: 3px 10px !important;
  letter-spacing: 0.02em !important;
}

/* ── 15. Modals ─────────────────────────────────────────────── */
.fi-modal-window {
  border-radius: var(--ajag-radius-xl) !important;
  box-shadow: var(--ajag-shadow-lg) !important;
  animation: ajag-scale-in var(--ajag-anim) ease both !important;
}

.fi-modal-header {
  border-bottom: 1px solid var(--ajag-border) !important;
  padding: 1.5rem !important;
}

/* ── 16. Notifications / Toasts ─────────────────────────────── */
.fi-notification {
  border-radius: var(--ajag-radius-lg) !important;
  box-shadow: var(--ajag-shadow-lg) !important;
  border: 1px solid var(--ajag-border) !important;
  animation: ajag-slide-right var(--ajag-anim) ease both !important;
}

/* ── 17. Widgets / Cards dashboard ──────────────────────────── */
.fi-wi-chart, .fi-wi-table {
  background-color: var(--ajag-card-bg) !important;
  border: 1px solid var(--ajag-border) !important;
  border-radius: var(--ajag-radius-lg) !important;
  box-shadow: var(--ajag-shadow-sm) !important;
  transition: box-shadow var(--ajag-anim) ease, transform var(--ajag-anim) ease !important;
  animation: ajag-card-in var(--ajag-anim-slow) ease both !important;
}

.fi-wi-chart:hover, .fi-wi-table:hover {
  box-shadow: var(--ajag-shadow) !important;
  transform: translateY(-2px) !important;
}

/* Stagger pour les widgets ── */
.fi-widget-list > *:nth-child(1) { animation-delay: 50ms !important; }
.fi-widget-list > *:nth-child(2) { animation-delay: 100ms !important; }
.fi-widget-list > *:nth-child(3) { animation-delay: 150ms !important; }
.fi-widget-list > *:nth-child(4) { animation-delay: 200ms !important; }
.fi-widget-list > *:nth-child(5) { animation-delay: 250ms !important; }
.fi-widget-list > *:nth-child(6) { animation-delay: 300ms !important; }

/* ── 18. Dropdown / Select ───────────────────────────────────── */
.fi-dropdown-panel {
  border-radius: var(--ajag-radius-lg) !important;
  border: 1px solid var(--ajag-border) !important;
  box-shadow: var(--ajag-shadow-lg) !important;
  animation: ajag-scale-in var(--ajag-anim-fast) ease both !important;
  transform-origin: top left !important;
}

.fi-dropdown-item {
  border-radius: var(--ajag-radius-sm) !important;
  font-size: 0.875rem !important;
  transition: background-color var(--ajag-anim-fast) ease !important;
}

.fi-dropdown-item:hover {
  background-color: var(--ajag-primary-light) !important;
  color: var(--ajag-primary) !important;
}

/* ── 19. User menu / Avatar ──────────────────────────────────── */
.fi-user-menu-trigger {
  border-radius: var(--ajag-radius-pill) !important;
  transition: background-color var(--ajag-anim-fast) ease !important;
}

.fi-user-menu-trigger:hover {
  background-color: var(--ajag-primary-light) !important;
}

/* ── 20. Tabs ────────────────────────────────────────────────── */
.fi-tabs-tab {
  border-radius: var(--ajag-radius-sm) !important;
  font-weight: 600 !important;
  font-size: 0.875rem !important;
  transition: background-color var(--ajag-anim-fast) ease, color var(--ajag-anim-fast) ease !important;
}

.fi-tabs-tab[aria-selected="true"] {
  background-color: var(--ajag-primary) !important;
  color: white !important;
}

/* ── 21. Hero Strip dashboard ────────────────────────────────── */
.ajag-hero-strip {
  background: linear-gradient(135deg, var(--ajag-primary) 0%, #2563EB 60%, #7C3AED 100%);
  border-radius: var(--ajag-radius-xl);
  padding: 1.75rem 2rem;
  color: white;
  display: grid;
  grid-template-columns: 1fr auto auto;
  align-items: center;
  gap: 2rem;
  box-shadow: var(--ajag-shadow-lg);
  position: relative;
  overflow: hidden;
  animation: ajag-card-in var(--ajag-anim-slow) ease both;
}

.ajag-hero-strip::before {
  content: '';
  position: absolute;
  top: -60%; right: -10%;
  width: 400px; height: 400px;
  background: radial-gradient(circle, rgba(255,255,255,.12) 0%, transparent 70%);
  border-radius: 50%;
  pointer-events: none;
}

.ajag-hero-strip::after {
  content: '';
  position: absolute;
  bottom: -80%; left: 20%;
  width: 300px; height: 300px;
  background: radial-gradient(circle, rgba(245,194,0,.15) 0%, transparent 70%);
  border-radius: 50%;
  pointer-events: none;
}

/* Eyebrow date */
.ajag-hero-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.75rem;
  font-weight: 600;
  color: rgba(255,255,255,.65);
  letter-spacing: 0.03em;
  margin-bottom: 0.5rem;
  text-transform: uppercase;
}

.ajag-hero-dot {
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--ajag-gold);
  animation: ajag-pulse-gold 2s ease infinite;
  display: inline-block;
}

.ajag-hero-greeting {
  font-size: clamp(1.25rem, 2.2vw, 1.75rem);
  font-weight: 800;
  letter-spacing: -0.03em;
  margin: 0;
  line-height: 1.15;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}

.ajag-hero-sub {
  font-size: 0.875rem;
  opacity: .65;
  margin: 0.375rem 0 0;
  line-height: 1.5;
}

.ajag-hero-gold-bar {
  width: 36px;
  height: 3px;
  background: var(--ajag-gold);
  border-radius: 2px;
  margin: 0.625rem 0;
  animation: ajag-scale-in var(--ajag-anim-slow) 300ms ease both;
}

.ajag-hero-date {
  font-size: 0.8125rem;
  opacity: .6;
  margin: 0;
  font-weight: 500;
}

.ajag-hero-lottie {
  flex-shrink: 0;
  filter: drop-shadow(0 8px 24px rgba(0,0,0,.2));
  animation: ajag-float 5s ease-in-out infinite;
  display: flex;
  align-items: center;
}

.ajag-hero-kpis {
  display: grid;
  grid-template-columns: repeat(3, auto);
  gap: 0.75rem;
  flex-shrink: 0;
}

.ajag-hero-kpi {
  text-align: center;
  padding: 0.625rem 0.875rem;
  background: rgba(255,255,255,.12);
  backdrop-filter: blur(8px);
  border-radius: var(--ajag-radius);
  border: 1px solid rgba(255,255,255,.2);
  min-width: 90px;
  transition: transform var(--ajag-anim-fast) ease, background var(--ajag-anim-fast) ease;
}

.ajag-hero-kpi:hover {
  transform: translateY(-2px);
  background: rgba(255,255,255,.18);
}

.ajag-hero-kpi-value {
  display: block;
  font-size: 1.375rem;
  font-weight: 800;
  letter-spacing: -0.04em;
  animation: ajag-count-up var(--ajag-anim-slow) 200ms ease both;
}

.ajag-hero-kpi-label {
  display: block;
  font-size: 0.625rem;
  opacity: .65;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  margin-top: 3px;
  white-space: nowrap;
}

.ajag-hero-kpi-alert { border-color: rgba(245,194,0,.5) !important; }

/* ── 22. Quick actions ───────────────────────────────────────── */
.ajag-quick-actions {
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
  animation: ajag-fade-up var(--ajag-anim-slow) 100ms ease both;
}

.ajag-quick-action {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 1rem;
  background: var(--ajag-card-bg);
  border: 1px solid var(--ajag-border);
  border-radius: var(--ajag-radius-pill);
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--ajag-text-soft);
  cursor: pointer;
  transition:
    background-color var(--ajag-anim-fast) ease,
    border-color var(--ajag-anim-fast) ease,
    color var(--ajag-anim-fast) ease,
    transform var(--ajag-anim-fast) ease,
    box-shadow var(--ajag-anim-fast) ease;
  text-decoration: none;
}

.ajag-quick-action:hover {
  background: var(--ajag-primary-light);
  border-color: var(--ajag-primary);
  color: var(--ajag-primary);
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(27,75,156,.12);
}

.ajag-quick-action-icon {
  width: 18px; height: 18px;
  flex-shrink: 0;
}

/* ── 23. Module cards (dashboard) ────────────────────────────── */
.ajag-card {
  background: var(--ajag-card-bg);
  border: 1px solid var(--ajag-border);
  border-radius: var(--ajag-radius-lg);
  padding: 1.5rem;
  box-shadow: var(--ajag-shadow-sm);
  transition: box-shadow var(--ajag-anim) ease, transform var(--ajag-anim) ease;
  animation: ajag-card-in var(--ajag-anim-slow) ease both;
  overflow: hidden;
  position: relative;
}

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

.ajag-card-icon {
  width: 44px; height: 44px;
  border-radius: var(--ajag-radius-sm);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}

.ajag-card-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.25rem;
}

.ajag-card-header-left {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.ajag-card-title {
  font-size: 0.9375rem;
  font-weight: 700;
  color: var(--ajag-text);
  letter-spacing: -0.01em;
}

.ajag-card-subtitle {
  font-size: 0.8125rem;
  color: var(--ajag-text-muted);
  margin-top: 2px;
}

/* ── 24. Badges colorés ──────────────────────────────────────── */
.ajag-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 10px;
  border-radius: var(--ajag-radius-pill);
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.03em;
}

.ajag-badge-primary { background: var(--ajag-primary-light); color: var(--ajag-primary); }
.ajag-badge-gold    { background: var(--ajag-gold-light);    color: #92400E; }
.ajag-badge-success { background: var(--ajag-success-light); color: #15803D; }
.ajag-badge-danger  { background: var(--ajag-danger-light);  color: #991B1B; }
.ajag-badge-warning { background: var(--ajag-warning-light); color: #92400E; }
.ajag-badge-purple  { background: var(--ajag-purple-light);  color: var(--ajag-purple); }
.ajag-badge-muted   { background: var(--ajag-border-soft);   color: var(--ajag-text-muted); }

/* Dot indicateur dans un badge */
.ajag-badge::before {
  content: '';
  width: 5px; height: 5px;
  border-radius: 50%;
  background: currentColor;
  opacity: 0.8;
}

/* ── 25. Shimmer (chargement) ────────────────────────────────── */
.ajag-shimmer {
  background: linear-gradient(90deg,
    var(--ajag-border-soft) 25%,
    var(--ajag-border) 50%,
    var(--ajag-border-soft) 75%
  );
  background-size: 200% 100%;
  animation: ajag-shimmer 1.5s ease-in-out infinite;
  border-radius: var(--ajag-radius-sm);
}

/* ── 26. Lottie container utilitaires ────────────────────────── */
.ajag-lottie-float {
  animation: ajag-float 4s ease-in-out infinite;
}

.ajag-lottie-center {
  display: flex;
  align-items: center;
  justify-content: center;
}

/* ── 27. Observer badge (L0) ─────────────────────────────────── */
.ajag-hero-badge-observateur {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 1rem;
  background: rgba(255,255,255,.15);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(255,255,255,.3);
  border-radius: var(--ajag-radius-pill);
  color: white;
  font-size: 0.8125rem;
  font-weight: 600;
}

/* ── 28. Preferences link dans menu ──────────────────────────── */
.ajag-prefs-menu-link {
  display: flex;
  align-items: center;
  gap: 0.625rem;
  width: 100%;
  padding: 0.5rem 0.75rem;
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--ajag-text-soft);
  background: none;
  border: none;
  cursor: pointer;
  border-radius: var(--ajag-radius-sm);
  transition: background-color var(--ajag-anim-fast) ease, color var(--ajag-anim-fast) ease;
  text-align: left;
}

.ajag-prefs-menu-link:hover {
  background-color: var(--ajag-primary-light);
  color: var(--ajag-primary);
}

/* ── 29. Préférences modal ───────────────────────────────────── */
.ajag-prefs-backdrop {
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: rgba(15,23,42,.5);
  backdrop-filter: blur(6px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  animation: ajag-fade-in 200ms ease both;
}

.ajag-prefs-modal {
  background: var(--ajag-card-bg);
  border-radius: var(--ajag-radius-xl);
  box-shadow: var(--ajag-shadow-lg);
  border: 1px solid var(--ajag-border);
  width: 100%;
  max-width: 480px;
  max-height: 90vh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  animation: ajag-scale-in 250ms ease both;
}

.ajag-prefs-header {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 1.5rem;
  border-bottom: 1px solid var(--ajag-border-soft);
  background: linear-gradient(135deg, var(--ajag-primary-light), rgba(245,194,0,.05));
}

.ajag-prefs-header-icon {
  width: 36px; height: 36px;
  background: var(--ajag-card-bg);
  border: 1px solid var(--ajag-border);
  border-radius: var(--ajag-radius-sm);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: var(--ajag-shadow-sm);
}

.ajag-prefs-title {
  font-size: 1rem;
  font-weight: 700;
  color: var(--ajag-text);
  letter-spacing: -0.02em;
  flex: 1;
  margin: 0;
}

.ajag-prefs-close {
  width: 32px; height: 32px;
  display: flex; align-items: center; justify-content: center;
  border-radius: var(--ajag-radius-sm);
  background: none;
  border: none;
  color: var(--ajag-text-muted);
  cursor: pointer;
  transition: background-color var(--ajag-anim-fast) ease, color var(--ajag-anim-fast) ease;
}
.ajag-prefs-close:hover {
  background: var(--ajag-danger-light);
  color: var(--ajag-danger);
}

.ajag-prefs-body {
  padding: 1.25rem;
  overflow-y: auto;
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

.ajag-prefs-section {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.ajag-prefs-section-label {
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--ajag-text-muted);
  margin: 0;
  padding-bottom: 0.25rem;
  border-bottom: 1px solid var(--ajag-border-soft);
}

.ajag-prefs-fieldset {
  border: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.ajag-prefs-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.5rem 0;
}

.ajag-prefs-row-label {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--ajag-text);
}

.ajag-prefs-row-sub {
  font-size: 0.75rem;
  color: var(--ajag-text-muted);
  margin-top: 2px;
}

.ajag-prefs-mb-sm { margin-bottom: 0.5rem; }

/* Pill mode clair/sombre */
.ajag-prefs-pill {
  display: flex;
  background: var(--ajag-bg);
  border: 1px solid var(--ajag-border);
  border-radius: var(--ajag-radius-pill);
  padding: 3px;
  position: relative;
  width: fit-content;
}

.ajag-prefs-pill-indicator {
  position: absolute;
  top: 3px; left: 3px;
  height: calc(100% - 6px);
  width: calc(50% - 3px);
  background: var(--ajag-card-bg);
  border-radius: var(--ajag-radius-pill);
  box-shadow: var(--ajag-shadow-sm);
  transition: transform var(--ajag-anim) ease;
}

.ajag-prefs-pill-indicator.right { transform: translateX(100%); }

.ajag-prefs-pill-option {
  position: relative; z-index: 1;
  display: flex; align-items: center; gap: 5px;
  padding: 5px 16px;
  background: none;
  border: none;
  border-radius: var(--ajag-radius-pill);
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--ajag-text-muted);
  cursor: pointer;
  transition: color var(--ajag-anim-fast) ease;
  font-family: 'Plus Jakarta Sans', sans-serif;
}

.ajag-prefs-pill-option.active { color: var(--ajag-text); }

/* Thème cards */
.ajag-prefs-theme-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.75rem;
}

.ajag-prefs-theme-card {
  border: 2px solid var(--ajag-border);
  border-radius: var(--ajag-radius);
  overflow: hidden;
  cursor: pointer;
  background: none;
  padding: 0;
  transition: border-color var(--ajag-anim-fast) ease, box-shadow var(--ajag-anim-fast) ease, transform var(--ajag-anim-fast) ease;
  text-align: left;
}

.ajag-prefs-theme-card:hover { transform: translateY(-2px); box-shadow: var(--ajag-shadow); }
.ajag-prefs-theme-card.active {
  border-color: var(--ajag-primary);
  box-shadow: 0 0 0 3px rgba(27,75,156,.15);
  animation: ajag-pulse-gold 2s ease infinite;
}

.ajag-prefs-theme-preview {
  height: 72px;
  display: flex;
  overflow: hidden;
}

.ajag-prefs-theme-sidebar {
  width: 35%;
  display: flex;
  flex-direction: column;
  gap: 5px;
  padding: 8px 6px;
}

.ajag-prefs-theme-sidebar-dot {
  height: 5px;
  border-radius: 3px;
  opacity: 0.8;
}

.ajag-prefs-theme-content {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 10px 8px;
}

.ajag-prefs-theme-content-bar {
  height: 6px;
  border-radius: 3px;
  width: 100%;
  background: currentColor;
  opacity: 0.15;
}

.ajag-prefs-theme-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 6px 8px;
  background: var(--ajag-card-bg);
  border-top: 1px solid var(--ajag-border-soft);
}

.ajag-prefs-theme-name {
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--ajag-text);
}

.ajag-prefs-theme-badge {
  font-size: 0.625rem;
  font-weight: 700;
  padding: 2px 6px;
  border-radius: var(--ajag-radius-pill);
}

.ajag-prefs-theme-badge.light { background: var(--ajag-success-light); color: #15803D; }
.ajag-prefs-theme-badge.dark  { background: #1E293B; color: #94A3B8; }

/* Toggle 3 options (density, toast) */
.ajag-prefs-toggle-3 {
  display: flex;
  background: var(--ajag-bg);
  border: 1px solid var(--ajag-border);
  border-radius: var(--ajag-radius-sm);
  padding: 3px;
  position: relative;
  width: fit-content;
}

.ajag-prefs-toggle-3-indicator {
  position: absolute;
  top: 3px;
  left: var(--ajag-toggle-x, 3px);
  width: var(--ajag-toggle-width, 33.33%);
  height: calc(100% - 6px);
  background: var(--ajag-card-bg);
  border-radius: 5px;
  box-shadow: var(--ajag-shadow-sm);
  transition: left var(--ajag-anim) ease, width var(--ajag-anim) ease;
}

.ajag-prefs-toggle-3-option {
  position: relative; z-index: 1;
  padding: 4px 12px;
  background: none;
  border: none;
  border-radius: 5px;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--ajag-text-muted);
  cursor: pointer;
  transition: color var(--ajag-anim-fast) ease;
  font-family: 'Plus Jakarta Sans', sans-serif;
}

.ajag-prefs-toggle-3-option.active { color: var(--ajag-text); }

/* Select */
.ajag-prefs-select {
  border: 1.5px solid var(--ajag-border);
  border-radius: var(--ajag-radius-sm);
  padding: 6px 10px;
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--ajag-text);
  background: var(--ajag-card-bg);
  cursor: pointer;
  font-family: 'Plus Jakarta Sans', sans-serif;
  transition: border-color var(--ajag-anim-fast) ease;
}

.ajag-prefs-select:focus {
  border-color: var(--ajag-primary);
  box-shadow: 0 0 0 3px rgba(27,75,156,.12);
  outline: none;
}

/* Switch */
.ajag-prefs-switch {
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  flex-shrink: 0;
}

.ajag-prefs-switch-track {
  display: block;
  width: 42px; height: 24px;
  background: var(--ajag-border);
  border-radius: var(--ajag-radius-pill);
  position: relative;
  transition: background var(--ajag-anim) ease;
}

.ajag-prefs-switch.on .ajag-prefs-switch-track {
  background: var(--ajag-primary);
}

.ajag-prefs-switch-thumb {
  position: absolute;
  top: 3px; left: 3px;
  width: 18px; height: 18px;
  background: white;
  border-radius: 50%;
  box-shadow: 0 1px 3px rgba(0,0,0,.2);
  transition: transform var(--ajag-anim) ease;
}

.ajag-prefs-switch.on .ajag-prefs-switch-thumb {
  transform: translateX(18px);
}

/* Footer prefs */
.ajag-prefs-footer {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.75rem;
  padding: 1rem 1.5rem;
  border-top: 1px solid var(--ajag-border-soft);
  background: var(--ajag-bg);
}

.ajag-prefs-btn-cancel {
  padding: 8px 16px;
  background: none;
  border: 1.5px solid var(--ajag-border);
  border-radius: var(--ajag-radius-pill);
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--ajag-text-soft);
  cursor: pointer;
  transition: background var(--ajag-anim-fast) ease;
  font-family: 'Plus Jakarta Sans', sans-serif;
}

.ajag-prefs-btn-cancel:hover { background: var(--ajag-border-soft); }

.ajag-prefs-btn-apply {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 8px 20px;
  background: linear-gradient(135deg, var(--ajag-primary), #2563EB);
  border: none;
  border-radius: var(--ajag-radius-pill);
  font-size: 0.875rem;
  font-weight: 700;
  color: white;
  cursor: pointer;
  box-shadow: 0 2px 8px rgba(27,75,156,.3);
  transition: box-shadow var(--ajag-anim-fast) ease, transform var(--ajag-anim-fast) ease;
  font-family: 'Plus Jakarta Sans', sans-serif;
}

.ajag-prefs-btn-apply:hover {
  box-shadow: 0 6px 20px rgba(27,75,156,.4);
  transform: translateY(-1px);
}

.ajag-prefs-btn-apply:disabled {
  opacity: .6;
  cursor: wait;
  transform: none;
}

/* ── 30. Density system ──────────────────────────────────────── */
[data-density="compact"] .fi-ta-cell {
  padding-top: 0.5rem !important;
  padding-bottom: 0.5rem !important;
}

[data-density="compact"] .fi-section-content {
  padding: 0.875rem 1.25rem !important;
}

[data-density="comfortable"] .fi-ta-cell {
  padding-top: 1.25rem !important;
  padding-bottom: 1.25rem !important;
}

[data-density="comfortable"] .fi-section-content {
  padding: 2rem !important;
}

/* ── Dashboard — classes spécifiques ────────────────────────── */

/* Section label */
.ajag-section-label {
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--ajag-text-muted);
  margin: 0 0 0.75rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.ajag-section-label::after {
  content: '';
  flex: 1;
  height: 1px;
  background: var(--ajag-border-soft);
}

/* Modules grid */
.ajag-modules-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 1rem;
}

/* Répartition grid */
.ajag-repartition-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
}

/* Card rep */
.ajag-repartition-card { min-height: 180px; }

.ajag-rep-header {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 1rem;
}

.ajag-rep-title {
  font-size: 0.9375rem;
  font-weight: 700;
  color: var(--ajag-text);
  letter-spacing: -0.01em;
  margin: 0;
}

.ajag-rep-bars { display: flex; flex-direction: column; gap: 0.625rem; }

.ajag-rep-row {
  display: flex;
  align-items: center;
  gap: 0.625rem;
  font-size: 0.8125rem;
}

.ajag-rep-rank {
  width: 18px; height: 18px;
  border-radius: 50%;
  background: var(--ajag-primary-light);
  color: var(--ajag-primary);
  font-size: 0.6875rem;
  font-weight: 700;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}

.ajag-rep-label {
  color: var(--ajag-text-soft);
  flex: 1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  font-weight: 500;
}

.ajag-rep-bar-wrap {
  flex: 2;
  height: 6px;
  background: var(--ajag-border-soft);
  border-radius: 3px;
  overflow: hidden;
}

.ajag-rep-bar {
  height: 100%;
  border-radius: 3px;
  transition: width 800ms cubic-bezier(.4,0,.2,1);
}

.ajag-rep-val {
  font-weight: 700;
  color: var(--ajag-text);
  font-size: 0.875rem;
  min-width: 28px;
  text-align: right;
}

.ajag-rep-empty {
  font-size: 0.8125rem;
  color: var(--ajag-text-muted);
  text-align: center;
  padding: 1rem 0;
  margin: 0;
}

/* Classe d'âge */
.ajag-rep-classes { display: flex; flex-direction: column; gap: 0.5rem; }

.ajag-classe-pill {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.8125rem;
}

.ajag-classe-dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}

.ajag-classe-nom { flex: 1; color: var(--ajag-text-soft); font-weight: 500; }
.ajag-classe-nb  { font-weight: 700; color: var(--ajag-text); }

/* Tendance badge */
.ajag-tendance-badge {
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 0.6875rem;
  font-weight: 700;
}

.ajag-tendance-badge.positive { background: var(--ajag-success-light); color: #15803D; }
.ajag-tendance-badge.negative { background: var(--ajag-danger-light);  color: #991B1B; }

/* Legend chart */
.ajag-chart-legend {
  display: flex;
  align-items: center;
  gap: 0.875rem;
  flex-wrap: wrap;
}

.ajag-legend-item {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--ajag-text-soft);
}

.ajag-legend-dot {
  width: 8px; height: 8px;
  border-radius: 50%;
}

/* Chart wrap */
.ajag-chart-wrap { padding: 0 1.5rem 1.5rem; }
.ajag-chart-wrap--empty { padding: 0; }

.ajag-chart-empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
  padding: 2.5rem 1rem;
  color: var(--ajag-text-muted);
  font-size: 0.875rem;
  text-align: center;
}

/* ── 31. Sidebar collapsed ───────────────────────────────────── */
[data-sidebar-collapsed="true"] .fi-sidebar-item-label,
[data-sidebar-collapsed="true"] .fi-sidebar-group-label {
  opacity: 0 !important;
  width: 0 !important;
  overflow: hidden !important;
}

/* ── 32. Focus visible (a11y) ────────────────────────────────── */
:focus { outline: none; }
:focus-visible {
  outline: 2px solid var(--ajag-primary);
  outline-offset: 2px;
  border-radius: var(--ajag-radius-sm);
}

/* ── 33. Dark mode overrides ─────────────────────────────────── */
[data-theme-mode="dark"] .fi-ta-header-cell {
  background-color: rgba(255,255,255,.04) !important;
}

[data-theme-mode="dark"] .fi-ta-row:hover td {
  background-color: rgba(255,255,255,.05) !important;
}

[data-theme-mode="dark"] .ajag-hero-strip {
  background: linear-gradient(135deg, #0C2660 0%, #1B4B9C 60%, #312E81 100%);
}

/* ── 34. Tab pill switcher ────────────────────────────────────── */
.ajag-tab-pill {
  display: flex;
  gap: 0.25rem;
  background: var(--ajag-bg);
  border: 1px solid var(--ajag-border);
  border-radius: var(--ajag-radius);
  padding: 3px;
  width: fit-content;
  animation: ajag-fade-up var(--ajag-anim) ease both;
}

.ajag-tab-option {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  padding: 0.5rem 1rem;
  border-radius: 9px;
  border: none;
  font-size: 0.8125rem;
  font-weight: 600;
  cursor: pointer;
  transition: background var(--ajag-anim-fast) ease, color var(--ajag-anim-fast) ease, box-shadow var(--ajag-anim-fast) ease;
  background: transparent;
  color: var(--ajag-text-muted);
  font-family: 'Plus Jakarta Sans', sans-serif;
}

.ajag-tab-option.active {
  background: var(--ajag-primary);
  color: white;
  box-shadow: 0 2px 8px rgba(27,75,156,.25);
}

/* ── 35. Avatar initiales ─────────────────────────────────────── */
.ajag-avatar {
  width: 1.75rem;
  height: 1.75rem;
  border-radius: 50%;
  background: var(--ajag-primary-light);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.6875rem;
  font-weight: 700;
  color: var(--ajag-primary);
  flex-shrink: 0;
}

/* ── 36. Modal dark header ────────────────────────────────────── */
.ajag-modal-header-dark {
  background: linear-gradient(135deg, var(--ajag-primary), #2563EB);
  padding: 1.25rem 1.5rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.ajag-modal-close-btn {
  width: 28px;
  height: 28px;
  background: rgba(255,255,255,.12);
  border: none;
  border-radius: var(--ajag-radius-sm);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: white;
  font-size: 0.875rem;
  transition: background var(--ajag-anim-fast) ease;
}

.ajag-modal-close-btn:hover { background: rgba(255,255,255,.2); }

/* ── 37. Formation cards ─────────────────────────────────────── */
.ajag-form-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  animation: ajag-fade-up var(--ajag-anim-slow) ease both;
}

.ajag-form-card {
  background: var(--ajag-card-bg);
  border: 1px solid var(--ajag-border);
  border-radius: var(--ajag-radius-lg);
  padding: 1.25rem;
  cursor: pointer;
  transition: box-shadow var(--ajag-anim) ease, transform var(--ajag-anim) ease, border-color var(--ajag-anim-fast) ease;
  box-shadow: var(--ajag-shadow-sm);
  position: relative;
  overflow: hidden;
}

.ajag-form-card:hover {
  box-shadow: var(--ajag-shadow);
  transform: translateY(-2px);
}

.ajag-form-card.selected {
  border-width: 2px;
  box-shadow: var(--ajag-shadow-lg);
}

/* ── 38. Honor grid ─────────────────────────────────────────── */
.ajag-honors-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 0.75rem;
  animation: ajag-fade-up var(--ajag-anim-slow) ease both;
}

.ajag-honor-card {
  background: var(--ajag-card-bg);
  border: 1px solid var(--ajag-border);
  border-radius: var(--ajag-radius-lg);
  padding: 1rem;
  text-align: center;
  cursor: pointer;
  transition: box-shadow var(--ajag-anim) ease, transform var(--ajag-anim) ease, border-color var(--ajag-anim-fast) ease;
  box-shadow: var(--ajag-shadow-sm);
}

.ajag-honor-card:hover {
  box-shadow: var(--ajag-shadow);
  transform: translateY(-2px);
  border-color: rgba(27,75,156,.3);
}

/* ── 39. KPI stats grid ─────────────────────────────────────── */
.ajag-kpi-grid-4 {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
  animation: ajag-card-in var(--ajag-anim-slow) ease both;
}

.ajag-kpi-card {
  background: var(--ajag-card-bg);
  border: 1px solid var(--ajag-border);
  border-top: 3px solid var(--ajag-primary);
  border-radius: var(--ajag-radius-lg);
  padding: 1.25rem;
  box-shadow: var(--ajag-shadow-sm);
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  transition: box-shadow var(--ajag-anim) ease, transform var(--ajag-anim) ease;
}

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

.ajag-kpi-label {
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: var(--ajag-text-muted);
}

.ajag-kpi-value {
  font-size: 2rem;
  font-weight: 800;
  color: var(--ajag-text);
  line-height: 1;
  letter-spacing: -0.04em;
  animation: ajag-count-up var(--ajag-anim-slow) ease both;
}

/* ── 40. Inline progress bar ──────────────────────────────────── */
.ajag-progress {
  height: 6px;
  background: var(--ajag-border);
  border-radius: var(--ajag-radius-pill);
  overflow: hidden;
}

.ajag-progress-bar {
  height: 100%;
  border-radius: var(--ajag-radius-pill);
  background: var(--ajag-primary);
  transition: width 800ms cubic-bezier(.4,0,.2,1);
}

/* ── 41. Table card wrapper ───────────────────────────────────── */
.ajag-table-card {
  background: var(--ajag-card-bg);
  border: 1px solid var(--ajag-border);
  border-radius: var(--ajag-radius-lg);
  box-shadow: var(--ajag-shadow-sm);
  overflow: hidden;
  animation: ajag-card-in var(--ajag-anim-slow) ease both;
}

.ajag-table-card-header {
  padding: 1rem 1.5rem;
  border-bottom: 1px solid var(--ajag-border-soft);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}

.ajag-table-card-title {
  font-size: 0.9375rem;
  font-weight: 700;
  color: var(--ajag-text);
  letter-spacing: -0.01em;
  margin: 0;
}

.ajag-native-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.875rem;
}

.ajag-native-table thead tr {
  background: var(--ajag-bg);
}

.ajag-native-table th {
  padding: 0.875rem 1rem;
  text-align: left;
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ajag-text-muted);
  border-bottom: 1px solid var(--ajag-border);
}

.ajag-native-table th:last-child { text-align: right; }

.ajag-native-table td {
  padding: 0.875rem 1rem;
  color: var(--ajag-text-soft);
  border-bottom: 1px solid var(--ajag-border-soft);
  vertical-align: middle;
}

.ajag-native-table tr:last-child td { border-bottom: none; }

.ajag-native-table tr:hover td {
  background: var(--ajag-primary-light);
}

/* ── Responsive ────────────────────────────────────────────────── */
@media (max-width: 900px) {
  .ajag-form-grid { grid-template-columns: repeat(2, 1fr); }
  .ajag-honors-grid { grid-template-columns: repeat(3, 1fr); }
  .ajag-kpi-grid-4 { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 640px) {
  .ajag-form-grid { grid-template-columns: 1fr; }
  .ajag-honors-grid { grid-template-columns: repeat(2, 1fr); }
  .ajag-kpi-grid-4 { grid-template-columns: 1fr; }
}

/* ═══════════════════════════════════════════════════════════════
   § 42. WIKI — Base de connaissances
   ═══════════════════════════════════════════════════════════════ */

/* ── Hero search ──────────────────────────────────────────────── */
.ajag-wiki-hero {
  background: linear-gradient(135deg, var(--ajag-primary) 0%, #2563EB 60%, #7C3AED 100%);
  border-radius: var(--ajag-radius-xl);
  padding: 2.5rem 2rem;
  position: relative;
  overflow: hidden;
  margin-bottom: 1.25rem;
  animation: ajag-card-in var(--ajag-anim-slow) ease both;
}

.ajag-wiki-hero::before {
  content: '';
  position: absolute;
  top: -60%; right: -5%;
  width: 380px; height: 380px;
  background: radial-gradient(circle, rgba(255,255,255,.1) 0%, transparent 70%);
  border-radius: 50%;
  pointer-events: none;
}

.ajag-wiki-hero::after {
  content: '';
  position: absolute;
  bottom: -80%; left: 10%;
  width: 280px; height: 280px;
  background: radial-gradient(circle, rgba(245,194,0,.12) 0%, transparent 70%);
  border-radius: 50%;
  pointer-events: none;
}

.ajag-wiki-hero-inner {
  position: relative;
  z-index: 1;
  max-width: 640px;
  margin: 0 auto;
  text-align: center;
}

.ajag-wiki-hero-title {
  font-size: clamp(1.375rem, 2.5vw, 2rem);
  font-weight: 800;
  color: #fff;
  letter-spacing: -0.03em;
  margin: 0 0 0.5rem;
  line-height: 1.15;
}

.ajag-wiki-hero-sub {
  font-size: 0.9375rem;
  color: rgba(255,255,255,.7);
  margin: 0 0 1.5rem;
  line-height: 1.5;
}

/* Search input */
.ajag-wiki-search-wrap {
  position: relative;
  display: flex;
  align-items: center;
  background: rgba(255,255,255,.15);
  backdrop-filter: blur(12px);
  border: 1.5px solid rgba(255,255,255,.25);
  border-radius: var(--ajag-radius-pill);
  padding: 0 1rem;
  transition: background var(--ajag-anim-fast) ease, border-color var(--ajag-anim-fast) ease;
}

.ajag-wiki-search-wrap:focus-within {
  background: rgba(255,255,255,.22);
  border-color: rgba(255,255,255,.5);
  box-shadow: 0 0 0 3px rgba(255,255,255,.1);
}

.ajag-wiki-search-wrap svg {
  width: 16px; height: 16px;
  color: rgba(255,255,255,.7);
  flex-shrink: 0;
}

.ajag-wiki-search-input {
  flex: 1;
  background: none;
  border: none;
  outline: none;
  padding: 0.75rem 0.5rem;
  font-size: 0.9375rem;
  color: #fff;
  font-family: 'Plus Jakarta Sans', sans-serif;
}

.ajag-wiki-search-input::placeholder { color: rgba(255,255,255,.55); }

.ajag-wiki-search-clear {
  width: 22px; height: 22px;
  display: flex; align-items: center; justify-content: center;
  background: rgba(255,255,255,.2);
  border-radius: 50%;
  font-size: 0.6875rem;
  color: rgba(255,255,255,.8);
  cursor: pointer;
  transition: background var(--ajag-anim-fast) ease;
  flex-shrink: 0;
}

.ajag-wiki-search-clear:hover { background: rgba(255,255,255,.35); }

/* Meta stats */
.ajag-wiki-hero-meta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  margin-top: 1rem;
  font-size: 0.8125rem;
  color: rgba(255,255,255,.6);
  font-weight: 500;
}

.ajag-wiki-hero-meta-dot {
  width: 3px; height: 3px;
  border-radius: 50%;
  background: rgba(255,255,255,.4);
  display: inline-block;
}

/* Search results dropdown */
.ajag-wiki-search-results {
  position: absolute;
  top: calc(100% + 0.5rem);
  left: 0; right: 0;
  background: var(--ajag-card-bg);
  border: 1px solid var(--ajag-border);
  border-radius: var(--ajag-radius-lg);
  box-shadow: var(--ajag-shadow-lg);
  overflow: hidden;
  z-index: 50;
  animation: ajag-scale-in 150ms ease both;
}

.ajag-wiki-search-results-inner { padding: 0.5rem; }

.ajag-wiki-search-results-label {
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ajag-text-muted);
  padding: 0.375rem 0.5rem 0.25rem;
  margin: 0;
}

.ajag-wiki-search-result-row {
  display: flex;
  align-items: center;
  gap: 0.625rem;
  padding: 0.5rem 0.625rem;
  border-radius: var(--ajag-radius-sm);
  text-decoration: none;
  transition: background var(--ajag-anim-fast) ease;
}

.ajag-wiki-search-result-row:hover { background: var(--ajag-primary-light); }

.ajag-wiki-search-result-dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}

.ajag-wiki-search-result-title {
  flex: 1;
  font-size: 0.875rem;
  color: var(--ajag-text);
  font-weight: 500;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.ajag-wiki-search-no-results {
  font-size: 0.8125rem;
  color: var(--ajag-text-muted);
  text-align: center;
  padding: 1rem 0;
  margin: 0;
}

/* Cat badge (shared) */
.ajag-wiki-cat-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 8px;
  border-radius: var(--ajag-radius-pill);
  font-size: 0.6875rem;
  font-weight: 700;
  background: color-mix(in srgb, var(--badge-bg, var(--ajag-primary)) 15%, transparent);
  color: var(--badge-bg, var(--ajag-primary));
}

/* ── Section header ────────────────────────────────────────────── */
.ajag-wiki-section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 0.875rem;
}

.ajag-wiki-section-title {
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--ajag-text-muted);
}

.ajag-wiki-section-link {
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--ajag-primary);
  text-decoration: none;
  display: flex;
  align-items: center;
  gap: 0.25rem;
  transition: color var(--ajag-anim-fast) ease;
}

.ajag-wiki-section-link:hover { color: var(--ajag-primary-dark); }

/* ── Category cards grid ────────────────────────────────────────── */
.ajag-wiki-cats {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 0.75rem;
  animation: ajag-fade-up var(--ajag-anim-slow) 50ms ease both;
}

.ajag-wiki-cat-card {
  background: var(--ajag-card-bg);
  border: 1px solid var(--ajag-border);
  border-top: 3px solid var(--cat-color, var(--ajag-primary));
  border-radius: var(--ajag-radius-lg);
  padding: 1rem 1.125rem;
  box-shadow: var(--ajag-shadow-sm);
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
  transition: box-shadow var(--ajag-anim) ease, transform var(--ajag-anim) ease;
  animation: ajag-card-in var(--ajag-anim-slow) ease both;
  outline: none;
}

.ajag-wiki-cat-card:hover,
.ajag-wiki-cat-card:focus-visible {
  box-shadow: var(--ajag-shadow);
  transform: translateY(-2px);
}

.ajag-wiki-cat-card--active {
  border-color: var(--cat-color, var(--ajag-primary));
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--cat-color, var(--ajag-primary)) 15%, transparent);
}

.ajag-wiki-cat-avatar {
  width: 2.25rem; height: 2.25rem;
  border-radius: var(--ajag-radius-sm);
  display: flex; align-items: center; justify-content: center;
  font-size: 1rem;
  font-weight: 800;
  color: white;
  flex-shrink: 0;
}

.ajag-wiki-cat-name {
  font-size: 0.9375rem;
  font-weight: 700;
  color: var(--ajag-text);
  letter-spacing: -0.01em;
  margin: 0;
}

.ajag-wiki-cat-desc {
  font-size: 0.8125rem;
  color: var(--ajag-text-muted);
  margin: 0;
  line-height: 1.5;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.ajag-wiki-cat-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding-top: 0.5rem;
  border-top: 1px solid var(--ajag-border-soft);
  margin-top: auto;
}

.ajag-wiki-cat-count {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--ajag-text-soft);
}

.ajag-wiki-cat-date {
  font-size: 0.6875rem;
  color: var(--ajag-text-muted);
}

/* ── Article feed ───────────────────────────────────────────────── */
.ajag-wiki-feed {
  background: var(--ajag-card-bg);
  border: 1px solid var(--ajag-border);
  border-radius: var(--ajag-radius-lg);
  box-shadow: var(--ajag-shadow-sm);
  overflow: hidden;
  animation: ajag-fade-up var(--ajag-anim-slow) 100ms ease both;
}

.ajag-wiki-article-row {
  display: flex;
  align-items: center;
  gap: 0.875rem;
  padding: 0.875rem 1.25rem;
  text-decoration: none;
  border-bottom: 1px solid var(--ajag-border-soft);
  transition: background var(--ajag-anim-fast) ease;
}

.ajag-wiki-article-row:last-child { border-bottom: none; }

.ajag-wiki-article-row:hover { background: var(--ajag-primary-light); }

.ajag-wiki-article-dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}

.ajag-wiki-article-body {
  flex: 1;
  min-width: 0;
}

.ajag-wiki-article-title {
  display: block;
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--ajag-text);
  letter-spacing: -0.01em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.ajag-wiki-article-meta {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  margin-top: 0.25rem;
  font-size: 0.75rem;
  color: var(--ajag-text-muted);
  flex-wrap: wrap;
}

.ajag-wiki-article-actions {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-shrink: 0;
}

.ajag-wiki-draft-badge {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  border-radius: var(--ajag-radius-pill);
  font-size: 0.6875rem;
  font-weight: 700;
  background: var(--ajag-warning-light);
  color: #92400E;
}

.ajag-wiki-edit-btn {
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--ajag-primary);
  white-space: nowrap;
  transition: color var(--ajag-anim-fast) ease;
}

.ajag-wiki-article-row:hover .ajag-wiki-edit-btn { color: var(--ajag-primary-dark); }

/* ── Empty state ────────────────────────────────────────────────── */
.ajag-wiki-empty {
  background: var(--ajag-card-bg);
  border: 1px solid var(--ajag-border);
  border-radius: var(--ajag-radius-lg);
  padding: 3.5rem 2rem;
  text-align: center;
  animation: ajag-fade-up var(--ajag-anim-slow) ease both;
}

.ajag-wiki-empty-icon {
  width: 2.5rem; height: 2.5rem;
  color: var(--ajag-border);
  margin: 0 auto 0.875rem;
  display: block;
}

/* ═══════════════════════════════════════════════════════════════
   § 43. WIKI — Page Lire (article)
   ═══════════════════════════════════════════════════════════════ */

.ajag-wiki-lire-layout {
  display: grid;
  grid-template-columns: 1fr 280px;
  gap: 1.5rem;
  align-items: flex-start;
  animation: ajag-fade-up var(--ajag-anim-slow) ease both;
}

@media (max-width: 900px) {
  .ajag-wiki-lire-layout { grid-template-columns: 1fr; }
  .ajag-wiki-lire-sidebar { display: none; }
}

/* ── Article header ─────────────────────────────────────────────── */
.ajag-wiki-lire-content {
  background: var(--ajag-card-bg);
  border: 1px solid var(--ajag-border);
  border-radius: var(--ajag-radius-lg);
  box-shadow: var(--ajag-shadow-sm);
  overflow: hidden;
}

.ajag-wiki-lire-header {
  padding: 2rem 2rem 1.5rem;
  border-bottom: 1px solid var(--ajag-border-soft);
}

.ajag-wiki-lire-cat-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 3px 10px 3px 8px;
  background: var(--ajag-primary-light);
  border-radius: var(--ajag-radius-pill);
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--ajag-primary);
  margin-bottom: 0.875rem;
}

.ajag-wiki-lire-cat-dot {
  width: 7px; height: 7px;
  border-radius: 50%;
  display: inline-block;
}

.ajag-wiki-lire-title {
  font-size: clamp(1.375rem, 2.5vw, 1.875rem);
  font-weight: 800;
  color: var(--ajag-text);
  letter-spacing: -0.03em;
  line-height: 1.2;
  margin: 0 0 0.875rem;
}

.ajag-wiki-lire-byline {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.8125rem;
  color: var(--ajag-text-muted);
  flex-wrap: wrap;
}

.ajag-wiki-lire-byline-dot {
  width: 3px; height: 3px;
  border-radius: 50%;
  background: var(--ajag-border);
  display: inline-block;
}

.ajag-wiki-lire-terrain-badge {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  border-radius: var(--ajag-radius-pill);
  font-size: 0.6875rem;
  font-weight: 700;
  background: var(--ajag-info-light);
  color: #1D4ED8;
}

.ajag-wiki-lire-accent-bar {
  width: 36px; height: 3px;
  background: var(--ajag-gold);
  border-radius: 2px;
  margin: 1rem 0;
  animation: ajag-scale-in var(--ajag-anim-slow) 200ms ease both;
}

.ajag-wiki-lire-header-actions {
  display: flex;
  align-items: center;
  gap: 0.625rem;
  flex-wrap: wrap;
}

.ajag-wiki-lire-btn-modifier {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  padding: 0.5rem 1rem;
  background: linear-gradient(135deg, var(--ajag-primary), #2563EB);
  color: white;
  border-radius: var(--ajag-radius-pill);
  font-size: 0.8125rem;
  font-weight: 600;
  text-decoration: none;
  box-shadow: 0 2px 8px rgba(27,75,156,.25);
  transition: box-shadow var(--ajag-anim-fast) ease, transform var(--ajag-anim-fast) ease;
}

.ajag-wiki-lire-btn-modifier:hover {
  box-shadow: 0 4px 16px rgba(27,75,156,.35);
  transform: translateY(-1px);
}

.ajag-wiki-lire-btn-retour {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  padding: 0.5rem 1rem;
  background: var(--ajag-card-bg);
  border: 1.5px solid var(--ajag-border);
  color: var(--ajag-text-soft);
  border-radius: var(--ajag-radius-pill);
  font-size: 0.8125rem;
  font-weight: 600;
  text-decoration: none;
  transition: background var(--ajag-anim-fast) ease, color var(--ajag-anim-fast) ease;
}

.ajag-wiki-lire-btn-retour:hover {
  background: var(--ajag-primary-light);
  color: var(--ajag-primary);
  border-color: var(--ajag-primary);
}

/* ── Article body (prose) ───────────────────────────────────────── */
.ajag-wiki-lire-body {
  padding: 2rem;
  color: var(--ajag-text-soft);
  font-size: 0.9375rem;
  line-height: 1.75;
}

.ajag-wiki-lire-body h1,
.ajag-wiki-lire-body h2,
.ajag-wiki-lire-body h3 {
  color: var(--ajag-text);
  font-weight: 700;
  letter-spacing: -0.02em;
  margin-top: 2em;
  margin-bottom: 0.625em;
  line-height: 1.25;
}

.ajag-wiki-lire-body h1 { font-size: 1.5rem; }
.ajag-wiki-lire-body h2 { font-size: 1.25rem; border-bottom: 1px solid var(--ajag-border-soft); padding-bottom: 0.375em; }
.ajag-wiki-lire-body h3 { font-size: 1.0625rem; }

.ajag-wiki-lire-body p { margin: 0 0 1em; }

.ajag-wiki-lire-body a {
  color: var(--ajag-primary);
  text-decoration: underline;
  text-decoration-color: rgba(27,75,156,.3);
  text-underline-offset: 2px;
  transition: text-decoration-color var(--ajag-anim-fast) ease;
}

.ajag-wiki-lire-body a:hover { text-decoration-color: var(--ajag-primary); }

.ajag-wiki-lire-body ul,
.ajag-wiki-lire-body ol {
  padding-left: 1.5em;
  margin: 0 0 1em;
}

.ajag-wiki-lire-body li { margin-bottom: 0.375em; }

.ajag-wiki-lire-body code {
  background: var(--ajag-bg);
  border: 1px solid var(--ajag-border);
  border-radius: 4px;
  padding: 1px 6px;
  font-size: 0.875em;
  font-family: ui-monospace, 'Cascadia Code', monospace;
  color: var(--ajag-primary);
}

.ajag-wiki-lire-body pre {
  background: var(--ajag-text);
  color: var(--ajag-bg);
  border-radius: var(--ajag-radius);
  padding: 1.25rem;
  overflow-x: auto;
  margin: 1.25em 0;
  font-size: 0.875rem;
  line-height: 1.6;
}

.ajag-wiki-lire-body pre code { background: none; border: none; color: inherit; padding: 0; }

.ajag-wiki-lire-body blockquote {
  border-left: 3px solid var(--ajag-gold);
  margin: 1.5em 0;
  padding: 0.75em 1.25em;
  background: var(--ajag-gold-light);
  border-radius: 0 var(--ajag-radius-sm) var(--ajag-radius-sm) 0;
  color: var(--ajag-text);
  font-style: italic;
}

.ajag-wiki-lire-body table {
  width: 100%;
  border-collapse: collapse;
  margin: 1.25em 0;
  font-size: 0.875rem;
}

.ajag-wiki-lire-body th {
  background: var(--ajag-bg);
  padding: 0.75em 1em;
  text-align: left;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--ajag-text-muted);
  border-bottom: 1px solid var(--ajag-border);
}

.ajag-wiki-lire-body td {
  padding: 0.75em 1em;
  border-bottom: 1px solid var(--ajag-border-soft);
  color: var(--ajag-text-soft);
}

.ajag-wiki-lire-body img {
  max-width: 100%;
  border-radius: var(--ajag-radius);
  border: 1px solid var(--ajag-border);
}

.ajag-wiki-lire-empty-content {
  padding: 3rem 2rem;
  text-align: center;
}

/* ── Sidebar ────────────────────────────────────────────────────── */
.ajag-wiki-lire-sidebar {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  position: sticky;
  top: 1.5rem;
}

.ajag-wiki-lire-sidebar-card {
  background: var(--ajag-card-bg);
  border: 1px solid var(--ajag-border);
  border-radius: var(--ajag-radius-lg);
  box-shadow: var(--ajag-shadow-sm);
  overflow: hidden;
  animation: ajag-card-in var(--ajag-anim-slow) ease both;
}

.ajag-wiki-lire-sidebar-head {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.875rem 1rem;
  border-bottom: 1px solid var(--ajag-border-soft);
  font-size: 0.8125rem;
  font-weight: 700;
  color: var(--ajag-text);
}

.ajag-wiki-lire-sidebar-head svg { color: var(--ajag-text-muted); flex-shrink: 0; }

/* Articles similaires */
.ajag-wiki-lire-similar-list { padding: 0.375rem 0; }

.ajag-wiki-lire-similar-item {
  display: flex;
  align-items: flex-start;
  gap: 0.625rem;
  padding: 0.625rem 1rem;
  text-decoration: none;
  transition: background var(--ajag-anim-fast) ease;
}

.ajag-wiki-lire-similar-item:hover { background: var(--ajag-primary-light); }

.ajag-wiki-lire-similar-dot {
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--ajag-primary);
  flex-shrink: 0;
  margin-top: 0.3125rem;
}

.ajag-wiki-lire-similar-body {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  min-width: 0;
}

.ajag-wiki-lire-similar-title {
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--ajag-text);
  line-height: 1.35;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.ajag-wiki-lire-similar-date {
  font-size: 0.6875rem;
  color: var(--ajag-text-muted);
}

/* Historique timeline */
.ajag-wiki-lire-timeline {
  padding: 0.75rem 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.ajag-wiki-lire-entry {
  display: flex;
  align-items: flex-start;
  gap: 0.625rem;
  position: relative;
}

.ajag-wiki-lire-entry-line {
  position: absolute;
  left: 4px;
  top: -0.75rem;
  bottom: calc(100% - 0.75rem + 1rem);
  width: 1px;
  background: var(--ajag-border);
  height: 100%;
}

.ajag-wiki-lire-entry-dot {
  width: 9px; height: 9px;
  border-radius: 50%;
  border: 2px solid var(--ajag-border);
  background: var(--ajag-card-bg);
  flex-shrink: 0;
  margin-top: 0.25rem;
  position: relative;
  z-index: 1;
}

.ajag-wiki-lire-entry-dot--current {
  background: var(--ajag-primary);
  border-color: var(--ajag-primary);
  box-shadow: 0 0 0 3px rgba(27,75,156,.2);
}

.ajag-wiki-lire-entry-dot--creation {
  background: var(--ajag-success);
  border-color: var(--ajag-success);
}

.ajag-wiki-lire-entry-dot--titre {
  background: var(--ajag-gold);
  border-color: var(--ajag-gold);
}

.ajag-wiki-lire-entry-dot--contenu {
  background: var(--ajag-info);
  border-color: var(--ajag-info);
}

.ajag-wiki-lire-entry-body {
  display: flex;
  flex-direction: column;
  gap: 0.1875rem;
  flex: 1;
  min-width: 0;
}

.ajag-wiki-lire-entry-label {
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--ajag-text);
}

.ajag-wiki-lire-entry-type-badge {
  display: inline-block;
  font-size: 0.6875rem;
  font-weight: 700;
  padding: 1px 7px;
  border-radius: var(--ajag-radius-pill);
}

.ajag-wiki-lire-type-creation { background: var(--ajag-success-light); color: #15803D; }
.ajag-wiki-lire-type-titre    { background: var(--ajag-gold-light);    color: #92400E; }
.ajag-wiki-lire-type-contenu  { background: var(--ajag-info-light);    color: #1D4ED8; }

.ajag-wiki-lire-entry-date {
  font-size: 0.6875rem;
  color: var(--ajag-text-muted);
}

.ajag-wiki-lire-entry-author {
  font-size: 0.6875rem;
  color: var(--ajag-text-muted);
  font-style: italic;
}

/* ── §44 Wiki — Composants contenu article (callouts, figures, tables) ── */

.wiki-content { max-width: 100%; }

/* Callouts */
.wiki-callout {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  padding: 0.875rem 1rem;
  border-radius: 0.5rem;
  margin: 1.25rem 0;
  font-size: 0.875rem;
  line-height: 1.6;
  border-left: 4px solid transparent;
}

.wiki-callout strong { display: block; margin-bottom: 0.1875rem; }

.wiki-callout--info {
  background: #EFF6FF;
  border-color: #3B82F6;
  color: #1E3A5F;
}

.wiki-callout--warning {
  background: #FFFBEB;
  border-color: #F59E0B;
  color: #78350F;
}

.wiki-callout--tip {
  background: #F0FDF4;
  border-color: #22C55E;
  color: #14532D;
}

/* Figures avec maquette SVG */
.wiki-figure {
  margin: 1.5rem 0;
  border: 1px solid var(--ajag-border);
  border-radius: 0.625rem;
  overflow: hidden;
  background: #F9FAFB;
}

.wiki-figure svg,
.wiki-figure img {
  display: block;
  width: 100%;
}

.wiki-figure figcaption {
  padding: 0.5rem 1rem;
  font-size: 0.75rem;
  color: var(--ajag-text-muted);
  background: var(--ajag-card-bg);
  border-top: 1px solid var(--ajag-border);
  font-style: italic;
  text-align: center;
}

/* Tables — F10: border-radius/overflow:hidden retirés (incompatibles avec border-collapse:collapse) */
.wiki-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.875rem;
  margin: 1.25rem 0;
  border: 1px solid var(--ajag-border);
}

.wiki-table thead tr { background: #EFF6FF; }

.wiki-table th {
  padding: 0.625rem 0.875rem;
  text-align: left;
  font-weight: 600;
  color: #1B3A6B;
  font-size: 0.8125rem;
  border-bottom: 1.5px solid #BFDBFE;
}

.wiki-table td {
  padding: 0.5625rem 0.875rem;
  border-bottom: 1px solid var(--ajag-border);
  color: var(--ajag-text-soft);
  vertical-align: top;
}

.wiki-table tr:last-child td { border-bottom: none; }
.wiki-table tr:nth-child(even) td { background: #F9FAFB; }
.wiki-table code { background: #F3F4F6; padding: 1px 5px; border-radius: 4px; font-size: 0.8125rem; }

/* ═══════════════════════════════════════════════════════════════
   § 44. L0 — Observatoire Fédération
   ═══════════════════════════════════════════════════════════════ */

.ajag-l0-section-label {
  font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.09em;
  text-transform: uppercase; color: var(--ajag-text-muted);
  display: flex; align-items: center; gap: 0.75rem; margin: 0.25rem 0 0;
}
.ajag-l0-section-label::after {
  content: ''; flex: 1; height: 1px;
  background: linear-gradient(to right, var(--ajag-border) 50%, transparent);
}
.ajag-alert-header {
  display: flex; align-items: center; gap: 0.625rem;
  padding: 0.75rem 1rem; background: var(--ajag-danger-light);
  border: 1px solid #FECACA; border-radius: var(--ajag-radius); margin-bottom: 0.75rem;
}
.ajag-alert-badge {
  font-size: 0.6875rem; font-weight: 700; padding: 0.125rem 0.5rem;
  border-radius: var(--ajag-radius-pill); background: var(--ajag-danger); color: white;
}

/* ═══════════════════════════════════════════════════════════════
   § 45. Membres — Liste
   ═══════════════════════════════════════════════════════════════ */

.ajag-membres-hero {
  background: linear-gradient(135deg, var(--ajag-primary) 0%, #2563EB 60%, #7C3AED 100%);
  border-radius: var(--ajag-radius-xl); padding: 1.75rem 2rem;
  display: grid; grid-template-columns: 1fr auto auto;
  align-items: center; gap: 2rem; position: relative; overflow: hidden;
  box-shadow: var(--ajag-shadow-lg); margin-bottom: 1.25rem;
  animation: ajag-card-in var(--ajag-anim-slow) ease both;
}
.ajag-membres-hero::before {
  content: ''; position: absolute; top: -60%; right: -10%;
  width: 380px; height: 380px;
  background: radial-gradient(circle, rgba(255,255,255,.1) 0%, transparent 70%);
  border-radius: 50%; pointer-events: none;
}
.ajag-membres-hero-lottie {
  filter: drop-shadow(0 8px 24px rgba(0,0,0,.2));
  animation: ajag-float 5s ease-in-out infinite;
}
.ajag-membres-stats-bar {
  display: flex; align-items: center; gap: 0;
  background: var(--ajag-card-bg); border: 1px solid var(--ajag-border);
  border-radius: var(--ajag-radius-lg); padding: 1rem 1.5rem;
  margin-bottom: 1.25rem; box-shadow: var(--ajag-shadow-sm);
  animation: ajag-fade-up var(--ajag-anim-slow) ease both;
}
.ajag-membres-stat { display: flex; flex-direction: column; align-items: center; flex: 1; }
.ajag-membres-stat-value { font-size: 1.625rem; font-weight: 800; color: var(--ajag-text); line-height: 1; animation: ajag-count-up var(--ajag-anim-slow) ease both; }
.ajag-membres-stat-value--green { color: var(--ajag-success); }
.ajag-membres-stat-value--red   { color: var(--ajag-danger); }
.ajag-membres-stat-value--navy  { color: var(--ajag-primary); }
.ajag-membres-stat-label { font-size: 0.75rem; color: var(--ajag-text-muted); margin-top: 0.25rem; }
.ajag-membres-stat-sep { width: 1px; height: 2.5rem; background: var(--ajag-border); flex-shrink: 0; }
.ajag-membres-toolbar {
  display: flex; align-items: center; gap: 0.75rem; margin-bottom: 1.25rem; flex-wrap: wrap;
}
.ajag-membres-search-wrap { flex: 1; min-width: 220px; position: relative; display: flex; align-items: center; }
.ajag-membres-search-wrap > svg { position: absolute; left: 0.875rem; width: 16px; height: 16px; color: var(--ajag-text-muted); pointer-events: none; }
.ajag-membres-search { width: 100%; padding: 0.6rem 0.875rem 0.6rem 2.5rem; border: 1.5px solid var(--ajag-border); border-radius: var(--ajag-radius); font-size: 0.875rem; background: var(--ajag-card-bg); color: var(--ajag-text); transition: border-color var(--ajag-anim-fast), box-shadow var(--ajag-anim-fast); font-family: 'Plus Jakarta Sans', sans-serif; }
.ajag-membres-search:focus { outline: none; border-color: var(--ajag-primary); box-shadow: 0 0 0 3px rgba(27,75,156,.1); }
.ajag-membres-search-clear { position: absolute; right: 0.75rem; background: none; border: none; color: var(--ajag-text-muted); cursor: pointer; font-size: 0.875rem; line-height: 1; }
.ajag-membres-filters { display: flex; gap: 0.5rem; }
.ajag-membres-filter-select { padding: 0.5625rem 0.875rem; border: 1.5px solid var(--ajag-border); border-radius: var(--ajag-radius); font-size: 0.8125rem; background: var(--ajag-card-bg); color: var(--ajag-text-soft); cursor: pointer; transition: border-color var(--ajag-anim-fast); font-family: 'Plus Jakarta Sans', sans-serif; }
.ajag-membres-filter-select:focus { outline: none; border-color: var(--ajag-primary); }
.ajag-membres-results-count { font-size: 0.8125rem; color: var(--ajag-text-muted); white-space: nowrap; }
.ajag-membres-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 1rem; animation: ajag-fade-up var(--ajag-anim-slow) 100ms ease both; }
.ajag-membres-card { background: var(--ajag-card-bg); border: 1px solid var(--ajag-border); border-radius: var(--ajag-radius-lg); padding: 1.25rem 1rem 1rem; display: flex; flex-direction: column; gap: 0.75rem; text-decoration: none; position: relative; overflow: hidden; transition: border-color var(--ajag-anim) ease, box-shadow var(--ajag-anim) ease, transform var(--ajag-anim) ease; box-shadow: var(--ajag-shadow-sm); animation: ajag-card-in var(--ajag-anim-slow) ease both; }
.ajag-membres-card:hover { border-color: rgba(27,75,156,.25); box-shadow: var(--ajag-shadow); transform: translateY(-2px); }
.ajag-membres-card-top { display: flex; align-items: center; justify-content: space-between; }
.ajag-membres-avatar { width: 48px; height: 48px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 1.0625rem; font-weight: 700; color: white; flex-shrink: 0; }
.ajag-membres-niveau-badge { font-size: 0.625rem; font-weight: 700; letter-spacing: 0.04em; padding: 0.1875rem 0.5rem; border-radius: var(--ajag-radius-pill); border: 1px solid; }
.ajag-membres-card-body { flex: 1; min-width: 0; }
.ajag-membres-card-nom { font-size: 0.9375rem; font-weight: 600; color: var(--ajag-text); line-height: 1.3; margin: 0 0 0.25rem; }
.ajag-membres-card-matricule { font-size: 0.6875rem; color: var(--ajag-text-muted); font-family: monospace; margin: 0 0 0.125rem; }
.ajag-membres-card-profil { font-size: 0.75rem; color: var(--ajag-text-soft); margin: 0; }
.ajag-membres-card-footer { display: flex; align-items: center; justify-content: space-between; gap: 0.375rem; }
.ajag-membres-statut-pill { font-size: 0.6875rem; font-weight: 600; padding: 0.1875rem 0.5rem; border-radius: var(--ajag-radius-pill); border: 1px solid; }
.ajag-membres-card-date { font-size: 0.6875rem; color: var(--ajag-text-muted); }
.ajag-membres-card-overlay { position: absolute; inset: 0; background: rgba(27,75,156,.88); display: flex; align-items: center; justify-content: center; color: white; font-size: 0.875rem; font-weight: 600; border-radius: var(--ajag-radius-lg); opacity: 0; transition: opacity var(--ajag-anim) ease; }
.ajag-membres-card:hover .ajag-membres-card-overlay { opacity: 1; }
.ajag-membres-empty { text-align: center; padding: 4rem 2rem; background: var(--ajag-card-bg); border: 1px solid var(--ajag-border); border-radius: var(--ajag-radius-lg); }
.ajag-membres-empty svg { width: 2.5rem; height: 2.5rem; color: var(--ajag-border); margin: 0 auto 0.875rem; display: block; }
.ajag-membres-empty p { color: var(--ajag-text-soft); font-size: 0.9375rem; margin: 0 0 1rem; }
.ajag-membres-reset-btn { display: inline-flex; align-items: center; padding: 0.5rem 1rem; background: var(--ajag-bg); border: 1px solid var(--ajag-border); border-radius: var(--ajag-radius-sm); font-size: 0.8125rem; color: var(--ajag-text-soft); cursor: pointer; transition: background var(--ajag-anim-fast); font-family: 'Plus Jakarta Sans', sans-serif; }
.ajag-membres-reset-btn:hover { background: var(--ajag-border); }
.ajag-membres-create-btn { display: inline-flex; align-items: center; gap: 0.4375rem; padding: 0.5625rem 1rem; background: var(--ajag-primary); color: #fff; border: none; border-radius: var(--ajag-radius-sm); font-size: 0.8125rem; font-weight: 600; text-decoration: none; cursor: pointer; transition: background var(--ajag-anim-fast), box-shadow var(--ajag-anim-fast); font-family: 'Plus Jakarta Sans', sans-serif; white-space: nowrap; }
.ajag-membres-create-btn svg { width: 15px; height: 15px; flex-shrink: 0; }
.ajag-membres-create-btn:hover { background: #153d82; box-shadow: 0 2px 8px rgba(27,75,156,.35); }
.ajag-membres-create-btn:focus-visible { outline: 2px solid var(--ajag-primary); outline-offset: 2px; }

/* ── Bannière install app ─────────────────────────────────────── */
.ajag-banner-app { display: flex; align-items: center; gap: 1rem; padding: 0.875rem 1.125rem; background: rgba(27,59,108,.92); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border: 1px solid rgba(255,255,255,.12); border-radius: var(--ajag-radius-lg); color: #fff; margin-bottom: 0.25rem; }
.ajag-banner-app-icon { flex-shrink: 0; width: 36px; height: 36px; color: #F5C200; }
.ajag-banner-app-icon svg { width: 36px; height: 36px; }
.ajag-banner-app-text { flex: 1; min-width: 0; }
.ajag-banner-app-title { font-size: 0.9375rem; font-weight: 700; color: #fff; margin: 0 0 0.1875rem; line-height: 1.3; }
.ajag-banner-app-sub { font-size: 0.8125rem; color: rgba(255,255,255,.72); margin: 0; line-height: 1.4; }
.ajag-banner-app-actions { display: flex; gap: 0.5rem; flex-shrink: 0; }
.ajag-banner-app-store-btn { display: inline-flex; align-items: center; gap: 0.375rem; padding: 0.4375rem 0.875rem; background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.2); border-radius: 999px; font-size: 0.8125rem; font-weight: 600; color: #fff; text-decoration: none; transition: background var(--ajag-anim-fast), border-color var(--ajag-anim-fast); white-space: nowrap; font-family: 'Plus Jakarta Sans', sans-serif; }
.ajag-banner-app-store-btn svg { width: 14px; height: 14px; flex-shrink: 0; }
.ajag-banner-app-store-btn:hover { background: rgba(255,255,255,.2); border-color: rgba(255,255,255,.35); }
.ajag-banner-app-store-btn:focus-visible { outline: 2px solid #F5C200; outline-offset: 2px; }
.ajag-banner-app-close { margin-left: auto; flex-shrink: 0; display: flex; align-items: center; justify-content: center; width: 32px; height: 32px; background: none; border: none; border-radius: 50%; color: rgba(255,255,255,.65); cursor: pointer; transition: color var(--ajag-anim-fast), background var(--ajag-anim-fast); }
.ajag-banner-app-close svg { width: 16px; height: 16px; }
.ajag-banner-app-close:hover { color: #fff; background: rgba(255,255,255,.12); }
.ajag-banner-app-close:focus-visible { outline: 2px solid #F5C200; outline-offset: 2px; }
@media (max-width: 640px) {
  .ajag-banner-app { flex-wrap: wrap; }
  .ajag-banner-app-actions { flex-wrap: wrap; }
  .ajag-banner-app-close { margin-left: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .ajag-banner-app { transition: none !important; }
}

/* ═══════════════════════════════════════════════════════════════
   § 46. Fiche Membre — Hero + Onglets
   ═══════════════════════════════════════════════════════════════ */

.ajag-fiche-back-nav { margin-bottom: 0.875rem; }
.ajag-fiche-back-btn { display: inline-flex; align-items: center; gap: 0.375rem; font-size: 0.8125rem; font-weight: 500; color: var(--ajag-text-muted); text-decoration: none; padding: 0.4rem 0.75rem; border-radius: var(--ajag-radius-sm); transition: background var(--ajag-anim-fast), color var(--ajag-anim-fast), transform var(--ajag-anim-fast); border: 1px solid transparent; }
.ajag-fiche-back-btn:hover { background: var(--ajag-primary-light); color: var(--ajag-primary); border-color: var(--ajag-border); transform: translateX(-3px); }

@keyframes heroGradientShift { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } }
@keyframes avatarRingPulse { 0%, 100% { box-shadow: 0 0 0 3px var(--ajag-gold), 0 0 0 6px rgba(245,194,0,.25), 0 6px 20px rgba(0,0,0,.35); } 50% { box-shadow: 0 0 0 3px var(--ajag-gold), 0 0 0 11px rgba(245,194,0,.08), 0 6px 20px rgba(0,0,0,.35); } }
@keyframes tabFadeUp { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }

.ajag-fiche-hero { background: linear-gradient(135deg, #0D1B3E 0%, var(--ajag-primary) 55%, #2563EB 100%); background-size: 200% 200%; animation: heroGradientShift 10s ease infinite; border-radius: var(--ajag-radius-lg); overflow: hidden; margin-bottom: 0; position: relative; box-shadow: 0 8px 32px rgba(27,75,156,.35); }
.ajag-fiche-hero::before { content: ''; position: absolute; bottom: 0; left: 15%; right: 15%; height: 2px; background: linear-gradient(90deg, transparent, rgba(245,194,0,.85) 35%, rgba(245,194,0,.85) 65%, transparent); }
.ajag-fiche-hero::after { content: ''; position: absolute; top: -80px; right: -80px; width: 280px; height: 280px; border-radius: 50%; background: rgba(37,99,235,.4); filter: blur(60px); pointer-events: none; }
.ajag-fiche-hero-inner { display: flex; align-items: flex-start; justify-content: space-between; gap: 1.5rem; padding: 1.75rem 2rem 1.5rem; }
.ajag-fiche-hero-left { display: flex; align-items: flex-start; gap: 1.25rem; flex: 1; min-width: 0; }
.ajag-fiche-avatar-xl { width: 72px; height: 72px; border-radius: 50%; flex-shrink: 0; display: flex; align-items: center; justify-content: center; font-size: 1.5rem; font-weight: 800; color: white; animation: avatarRingPulse 3s ease-in-out infinite; }
.ajag-fiche-hero-info { flex: 1; min-width: 0; }
.ajag-fiche-hero-nom { font-size: 1.5rem; font-weight: 800; color: white; letter-spacing: -0.02em; margin: 0 0 0.625rem; line-height: 1.2; }
.ajag-fiche-hero-meta { display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; margin-bottom: 0.625rem; }
.ajag-fiche-matricule { font-size: 0.75rem; color: rgba(255,255,255,.55); font-family: monospace; }
.ajag-fiche-niveau-badge { font-size: 0.6875rem; font-weight: 700; padding: 0.2rem 0.625rem; border-radius: var(--ajag-radius-pill); border: 1px solid; }
.ajag-fiche-statut-pill { font-size: 0.6875rem; font-weight: 600; padding: 0.2rem 0.625rem; border-radius: var(--ajag-radius-pill); border: 1px solid; }
.ajag-fiche-hero .ajag-fiche-niveau-badge { color: white !important; background: rgba(255,255,255,.15) !important; border-color: rgba(255,255,255,.3) !important; }
.ajag-fiche-hero .ajag-fiche-statut-pill { color: white !important; background: rgba(255,255,255,.12) !important; border-color: rgba(255,255,255,.35) !important; font-weight: 700 !important; }
.ajag-fiche-hero-contacts { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; }
.ajag-fiche-contact-item { display: flex; align-items: center; gap: 0.3rem; font-size: 0.8125rem; color: rgba(255,255,255,.75); }
.ajag-fiche-contact-item svg { flex-shrink: 0; color: rgba(255,255,255,.5); }
.ajag-fiche-hero-actions { display: flex; flex-direction: column; gap: 0.5rem; align-items: flex-end; flex-shrink: 0; }
.ajag-fiche-action-btn { display: inline-flex; align-items: center; gap: 0.375rem; padding: 0.4375rem 0.875rem; border-radius: var(--ajag-radius-sm); font-size: 0.8125rem; font-weight: 600; cursor: pointer; border: 1px solid; transition: opacity var(--ajag-anim-fast), transform var(--ajag-anim-fast), background var(--ajag-anim-fast); white-space: nowrap; background: none; }
.ajag-fiche-action-btn:hover { transform: translateY(-1px); }
.ajag-fiche-action-btn:active { transform: translateY(0); }
.ajag-fiche-action-btn--green { color: #065F46; background: var(--ajag-success-light); border-color: #6EE7B7; }
.ajag-fiche-action-btn--green:hover { background: #A7F3D0; }
.ajag-fiche-action-btn--red { color: #991B1B; background: var(--ajag-danger-light); border-color: #FCA5A5; }
.ajag-fiche-action-btn--red:hover { background: #FECACA; }
.ajag-fiche-action-btn--gray { color: var(--ajag-text-soft); background: var(--ajag-bg); border-color: var(--ajag-border); }
.ajag-fiche-action-btn--gray:hover { background: var(--ajag-border); }
.ajag-fiche-action-btn--outline { color: white; border-color: rgba(255,255,255,.45); background: rgba(255,255,255,.12); backdrop-filter: blur(8px); }
.ajag-fiche-action-btn--outline:hover { background: rgba(255,255,255,.22); }

.ajag-fiche-tabs { display: flex; background: rgba(255,255,255,.88); backdrop-filter: blur(14px); border: 1px solid rgba(255,255,255,.6); border-bottom: none; border-radius: var(--ajag-radius-lg) var(--ajag-radius-lg) 0 0; padding: 0 1.25rem; gap: 0.125rem; overflow-x: auto; box-shadow: 0 -2px 12px rgba(27,75,156,.05); }
.ajag-fiche-tab { display: inline-flex; align-items: center; gap: 0.3rem; padding: 0.625rem 0.75rem; border: none; background: none; cursor: pointer; font-size: 0.78rem; font-weight: 500; color: var(--ajag-text-soft); border-bottom: 2px solid transparent; margin-bottom: -1px; white-space: nowrap; transition: color var(--ajag-anim-fast), border-color var(--ajag-anim-fast); font-family: 'Plus Jakarta Sans', sans-serif; }
.ajag-fiche-tab:hover { color: var(--ajag-primary); }
.ajag-fiche-tab--active { color: var(--ajag-primary); border-bottom-color: var(--ajag-primary); font-weight: 600; }
.ajag-fiche-tab-badge { display: inline-flex; align-items: center; justify-content: center; min-width: 18px; height: 18px; padding: 0 5px; background: var(--ajag-danger); color: white; font-size: 0.6875rem; font-weight: 700; border-radius: var(--ajag-radius-pill); }

.ajag-fiche-body { background: rgba(255,255,255,.93); backdrop-filter: blur(16px); border: 1px solid rgba(255,255,255,.65); border-top: none; border-radius: 0 0 var(--ajag-radius-lg) var(--ajag-radius-lg); padding: 1.75rem 2rem; box-shadow: 0 4px 24px rgba(27,75,156,.07); animation: tabFadeUp 0.2s ease; }
.ajag-fiche-section-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1.25rem; }
.ajag-fiche-section-title { font-size: 0.9375rem; font-weight: 700; color: var(--ajag-text); }
.ajag-fiche-edit-toggle { display: inline-flex; align-items: center; gap: 0.3rem; padding: 0.375rem 0.75rem; border: 1px solid var(--ajag-border); border-radius: var(--ajag-radius-sm); background: var(--ajag-bg); font-size: 0.8125rem; color: var(--ajag-text-soft); cursor: pointer; transition: background var(--ajag-anim-fast); font-family: 'Plus Jakarta Sans', sans-serif; }
.ajag-fiche-edit-toggle:hover { background: var(--ajag-border); }
.ajag-fiche-info-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0; }
.ajag-fiche-info-row { display: flex; flex-direction: column; gap: 0.25rem; padding: 0.875rem 0; border-bottom: 1px solid var(--ajag-border-soft); }
.ajag-fiche-info-row:nth-child(odd) { padding-right: 2rem; border-right: 1px solid var(--ajag-border-soft); }
.ajag-fiche-info-row:nth-child(even) { padding-left: 2rem; }
.ajag-fiche-info-label { font-size: 0.75rem; color: var(--ajag-text-muted); font-weight: 500; }
.ajag-fiche-info-value { font-size: 0.9375rem; color: var(--ajag-text); font-weight: 500; }
.ajag-fiche-encrypted-notice { display: flex; align-items: center; gap: 0.5rem; font-size: 0.8125rem; color: #92400E; background: var(--ajag-warning-light); border: 1px solid #FDE68A; border-radius: var(--ajag-radius); padding: 0.75rem 1rem; margin-top: 1.25rem; }
.ajag-fiche-edit-form { background: var(--ajag-bg); border: 1px solid var(--ajag-border); border-radius: var(--ajag-radius-lg); padding: 1.5rem; }
.ajag-fiche-edit-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-bottom: 1.25rem; }
.ajag-fiche-field { display: flex; flex-direction: column; gap: 0.375rem; }
.ajag-fiche-field label { font-size: 0.8125rem; font-weight: 600; color: var(--ajag-text-soft); }
.ajag-fiche-input { padding: 0.5625rem 0.875rem; border: 1.5px solid var(--ajag-border); border-radius: var(--ajag-radius-sm); font-size: 0.875rem; background: var(--ajag-card-bg); color: var(--ajag-text); transition: border-color var(--ajag-anim-fast), box-shadow var(--ajag-anim-fast); font-family: 'Plus Jakarta Sans', sans-serif; }
.ajag-fiche-input:focus { outline: none; border-color: var(--ajag-primary); box-shadow: 0 0 0 3px rgba(27,75,156,.1); }
.ajag-fiche-edit-actions { display: flex; gap: 0.75rem; align-items: center; }
.ajag-fiche-save-btn { display: inline-flex; align-items: center; gap: 0.375rem; padding: 0.5rem 1.125rem; background: linear-gradient(135deg, var(--ajag-primary), #2563EB); color: white; border-radius: var(--ajag-radius-pill); font-size: 0.875rem; font-weight: 600; border: none; cursor: pointer; box-shadow: 0 2px 8px rgba(27,75,156,.25); transition: box-shadow var(--ajag-anim-fast), transform var(--ajag-anim-fast); font-family: 'Plus Jakarta Sans', sans-serif; }
.ajag-fiche-save-btn:hover { box-shadow: 0 4px 16px rgba(27,75,156,.35); transform: translateY(-1px); }
.ajag-fiche-cancel-btn { padding: 0.5rem 1rem; background: none; border: 1.5px solid var(--ajag-border); border-radius: var(--ajag-radius-pill); font-size: 0.875rem; color: var(--ajag-text-soft); cursor: pointer; transition: background var(--ajag-anim-fast); font-family: 'Plus Jakarta Sans', sans-serif; }
.ajag-fiche-cancel-btn:hover { background: var(--ajag-bg); }
.ajag-fiche-famille-list { display: flex; flex-direction: column; gap: 0.5rem; }
.ajag-fiche-famille-separator { border: none; border-top: 2px dashed var(--ajag-border); position: relative; margin: 1.75rem 0 0; }
.ajag-fiche-famille-separator::before { content: 'Demandes de situation'; position: absolute; top: -10px; left: 50%; transform: translateX(-50%); background: var(--ajag-card-bg); padding: 0 0.75rem; font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ajag-text-muted); }
.ajag-fiche-famille-item { display: flex; align-items: center; gap: 0.875rem; padding: 0.875rem 1rem; border: 1px solid var(--ajag-border-soft); border-radius: var(--ajag-radius); text-decoration: none; transition: background var(--ajag-anim-fast), border-color var(--ajag-anim-fast); }
.ajag-fiche-famille-item:hover { background: var(--ajag-bg); border-color: var(--ajag-border); }
.ajag-fiche-famille-avatar { width: 38px; height: 38px; border-radius: 50%; background: var(--ajag-primary-light); color: var(--ajag-primary); font-weight: 700; font-size: 0.875rem; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.ajag-fiche-famille-nom { font-size: 0.9375rem; font-weight: 600; color: var(--ajag-text); margin: 0 0 0.125rem; }
.ajag-fiche-famille-meta { font-size: 0.8125rem; color: var(--ajag-text-muted); margin: 0; }
.ajag-fiche-clubs-list { display: flex; flex-direction: column; }
.ajag-fiche-club-item { display: flex; align-items: flex-start; gap: 0.875rem; padding: 0.875rem 0; border-bottom: 1px solid var(--ajag-border-soft); }
.ajag-fiche-club-item:last-child { border-bottom: none; }
.ajag-fiche-club-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--ajag-primary); flex-shrink: 0; margin-top: 0.375rem; box-shadow: 0 0 0 3px rgba(27,75,156,.15); }
.ajag-fiche-club-body { flex: 1; }
.ajag-fiche-club-nom { font-size: 0.9375rem; font-weight: 600; color: var(--ajag-text); display: block; margin-bottom: 0.3rem; }
.ajag-fiche-club-meta { display: flex; gap: 0.5rem; }
.ajag-fiche-role-badge { font-size: 0.75rem; background: var(--ajag-purple-light); color: var(--ajag-purple); padding: 0.15rem 0.5rem; border-radius: var(--ajag-radius-pill); font-weight: 500; }
.ajag-fiche-niveau-tag { font-size: 0.75rem; background: var(--ajag-primary-light); color: var(--ajag-primary); padding: 0.15rem 0.5rem; border-radius: var(--ajag-radius-pill); font-weight: 700; }
.ajag-fiche-cotisations-list { display: flex; flex-direction: column; }
.ajag-fiche-cotisation-row { display: flex; align-items: center; gap: 1rem; padding: 0.875rem 0; border-bottom: 1px solid var(--ajag-border-soft); }
.ajag-fiche-cotisation-row:last-child { border-bottom: none; }
.ajag-fiche-cotisation-dot { width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0; }
.ajag-fiche-cotisation-dot--ok { background: var(--ajag-success); box-shadow: 0 0 0 3px var(--ajag-success-light); }
.ajag-fiche-cotisation-dot--ko { background: var(--ajag-danger); box-shadow: 0 0 0 3px var(--ajag-danger-light); }
.ajag-fiche-cotisation-body { flex: 1; display: flex; align-items: baseline; gap: 0.5rem; }
.ajag-fiche-cotisation-montant { font-size: 1rem; font-weight: 700; color: var(--ajag-text); }
.ajag-fiche-cotisation-type { font-size: 0.8125rem; color: var(--ajag-text-muted); }
.ajag-fiche-cotisation-right { display: flex; flex-direction: column; align-items: flex-end; gap: 0.125rem; }
.ajag-fiche-cotisation-statut { font-size: 0.75rem; font-weight: 600; padding: 0.15rem 0.5rem; border-radius: var(--ajag-radius-pill); }
.ajag-fiche-cotisation-statut--ok { background: var(--ajag-success-light); color: #065F46; }
.ajag-fiche-cotisation-statut--ko { background: var(--ajag-danger-light); color: #991B1B; }
.ajag-fiche-cotisation-date { font-size: 0.75rem; color: var(--ajag-text-muted); }
.ajag-fiche-honors-chip { display: inline-flex; align-items: center; gap: 0.3rem; font-size: 0.75rem; font-weight: 600; color: #92400E; background: var(--ajag-gold-light); border: 1px solid #FDE68A; padding: 0.2rem 0.625rem; border-radius: var(--ajag-radius-pill); }
.ajag-fiche-demandes-alert-chip { display: inline-flex; align-items: center; gap: 0.375rem; padding: 0.2rem 0.75rem; border-radius: var(--ajag-radius-pill); background: var(--ajag-danger-light); color: #B91C1C; border: 1px solid #FECACA; font-size: 0.75rem; font-weight: 600; }
.ajag-fiche-demandes-list { display: flex; flex-direction: column; gap: 0.875rem; }
.ajag-fiche-demande-row { padding: 1rem 1.125rem; border: 1px solid var(--ajag-border); border-radius: var(--ajag-radius); background: var(--ajag-card-bg); transition: border-color var(--ajag-anim-fast); }
.ajag-fiche-demande-row--alert { border-color: #FCA5A5; background: #FFF5F5; }
.ajag-fiche-demande-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 0.5rem; }
.ajag-fiche-demande-type-group { display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; }
.ajag-fiche-demande-type { display: inline-block; padding: 0.2rem 0.65rem; border-radius: 5px; font-size: 0.75rem; font-weight: 600; }
.ajag-fiche-demande-type--changement-club { background: var(--ajag-info-light); color: #1E40AF; }
.ajag-fiche-demande-type--changement-section { background: var(--ajag-warning-light); color: #92400E; }
.ajag-fiche-demande-type--fin-adhesion { background: var(--ajag-danger-light); color: #991B1B; }
.ajag-fiche-demande-type--separation-famille { background: var(--ajag-bg); color: var(--ajag-text-soft); }
.ajag-fiche-demande-statut { display: inline-block; padding: 0.2rem 0.65rem; border-radius: 5px; font-size: 0.6875rem; font-weight: 600; }
.ajag-fiche-demande-statut--en-attente-validation { background: var(--ajag-warning-light); color: #92400E; }
.ajag-fiche-demande-statut--validee { background: var(--ajag-success-light); color: #065F46; }
.ajag-fiche-demande-statut--rejetee { background: var(--ajag-danger-light); color: #991B1B; }
.ajag-fiche-demande-date { font-size: 0.75rem; color: var(--ajag-text-muted); white-space: nowrap; }
.ajag-fiche-demande-details { display: flex; flex-wrap: wrap; gap: 0.375rem; padding: 0.5rem 0.625rem; margin-bottom: 0.625rem; background: var(--ajag-bg); border-radius: 6px; }
.ajag-fiche-demande-detail-item { font-size: 0.8125rem; color: var(--ajag-text-soft); }
.ajag-fiche-demande-detail-item strong { color: var(--ajag-primary); }
.ajag-fiche-demande-actions { display: flex; gap: 0.5rem; flex-wrap: wrap; padding-top: 0.75rem; border-top: 1px solid var(--ajag-border-soft); margin-top: 0.5rem; }
.ajag-fiche-demande-btn { display: inline-flex; align-items: center; gap: 0.375rem; padding: 0.45rem 1rem; border-radius: var(--ajag-radius-sm); border: none; font-size: 0.8125rem; font-weight: 600; cursor: pointer; transition: opacity var(--ajag-anim-fast); font-family: 'Plus Jakarta Sans', sans-serif; }
.ajag-fiche-demande-btn:hover { opacity: 0.85; }
.ajag-fiche-demande-btn--valider { background: var(--ajag-primary); color: white; }
.ajag-fiche-demande-btn--refuser { background: var(--ajag-danger-light); color: #991B1B; border: 1px solid #FCA5A5; }
.ajag-fiche-audit-list { display: flex; flex-direction: column; }
.ajag-fiche-audit-row { display: flex; align-items: center; gap: 0.875rem; padding: 0.75rem 0; border-bottom: 1px solid var(--ajag-border-soft); }
.ajag-fiche-audit-row:last-child { border-bottom: none; }
.ajag-fiche-audit-dot { width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0; }
.ajag-fiche-audit-body { flex: 1; display: flex; align-items: baseline; gap: 0.5rem; }
.ajag-fiche-audit-action { font-size: 0.875rem; font-weight: 600; color: var(--ajag-text); font-family: monospace; }
.ajag-fiche-audit-table { font-size: 0.8125rem; color: var(--ajag-text-muted); }
.ajag-fiche-audit-date { font-size: 0.75rem; color: var(--ajag-text-muted); white-space: nowrap; }
.ajag-fiche-empty-tab { padding: 3rem 1rem; text-align: center; color: var(--ajag-text-muted); font-size: 0.9375rem; }

/* ═══════════════════════════════════════════════════════════════
   § 47. Conversation — Panel messagerie fiche
   ═══════════════════════════════════════════════════════════════ */

.ajag-fiche-split { display: grid; grid-template-columns: 1fr 380px; gap: 1.25rem; align-items: start; }
.ajag-fiche-left-col { min-width: 0; }
.ajag-conv-panel { position: sticky; top: 1rem; height: calc(100vh - 120px); display: flex; flex-direction: column; background: var(--ajag-card-bg); border: 1px solid var(--ajag-border); border-radius: var(--ajag-radius-lg); overflow: hidden; box-shadow: var(--ajag-shadow); }
.ajag-conv-header { display: flex; align-items: center; gap: 0.75rem; padding: 0.875rem 1rem; background: var(--ajag-primary); color: white; flex-shrink: 0; }
.ajag-conv-header-avatar { width: 40px; height: 40px; border-radius: 50%; background: rgba(255,255,255,.2); display: flex; align-items: center; justify-content: center; font-size: 0.9375rem; font-weight: 700; color: white; flex-shrink: 0; }
.ajag-conv-header-info { min-width: 0; }
.ajag-conv-header-nom { font-size: 0.9375rem; font-weight: 600; color: white; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ajag-conv-header-email { font-size: 0.75rem; color: rgba(255,255,255,.75); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ajag-conv-header-wa-badge { margin-left: auto; flex-shrink: 0; opacity: 0.9; filter: drop-shadow(0 2px 8px rgba(37,211,102,.45)); }
.ajag-conv-tabs { display: flex; border-bottom: 2px solid var(--ajag-border); background: var(--ajag-bg); flex-shrink: 0; }
.ajag-conv-tab { flex: 1; padding: 0.625rem 0.5rem; font-size: 0.8125rem; font-weight: 500; color: var(--ajag-text-muted); background: transparent; border: none; cursor: pointer; transition: color var(--ajag-anim-fast); border-bottom: 2px solid transparent; margin-bottom: -2px; display: flex; align-items: center; justify-content: center; gap: 0.375rem; font-family: 'Plus Jakarta Sans', sans-serif; }
.ajag-conv-tab:hover { color: var(--ajag-primary); }
.ajag-conv-tab--active { color: var(--ajag-primary); font-weight: 600; border-bottom: 2px solid var(--ajag-primary); }
.ajag-conv-tab-count { display: inline-flex; align-items: center; justify-content: center; min-width: 18px; height: 18px; padding: 0 5px; background: var(--ajag-border); color: var(--ajag-text-soft); border-radius: 9px; font-size: 0.6875rem; font-weight: 600; }
.ajag-conv-tab--active .ajag-conv-tab-count { background: var(--ajag-primary); color: white; }
.ajag-conv-track { display: flex; flex-direction: column; flex: 1; min-height: 0; background: #F4F7FF; }
.ajag-conv-bubbles { flex: 1; overflow-y: auto; padding: 1rem 0.875rem; display: flex; flex-direction: column; gap: 0.75rem; scroll-behavior: smooth; background-color: #F4F7FF; background-image: radial-gradient(circle at 1px 1px, #C8D0E8 1px, transparent 0); background-size: 22px 22px; }
.ajag-conv-bubbles::-webkit-scrollbar { width: 4px; }
.ajag-conv-bubbles::-webkit-scrollbar-thumb { background: #C5CDE0; border-radius: 2px; }
.ajag-conv-empty { text-align: center; color: var(--ajag-text-muted); font-size: 0.8125rem; padding: 2rem 1rem; font-style: italic; }
.ajag-conv-bubble-wrap { display: flex; flex-direction: column; max-width: 88%; }
.ajag-conv-bubble-wrap--out { align-self: flex-end; align-items: flex-end; }
.ajag-conv-bubble { padding: 0.625rem 0.875rem; border-radius: 16px; font-size: 0.8125rem; line-height: 1.45; word-break: break-word; max-width: 100%; }
.ajag-conv-bubble--email { background: var(--ajag-primary); color: white; border-bottom-right-radius: 4px; }
.ajag-conv-bubble--prive { background: #25D366; color: white; border-bottom-right-radius: 4px; }
.ajag-conv-bubble-objet { font-size: 0.75rem; font-weight: 700; opacity: 0.85; margin-bottom: 0.25rem; letter-spacing: 0.01em; }
.ajag-conv-bubble-corps { margin: 0; white-space: pre-wrap; }
.ajag-conv-bubble-time { font-size: 0.6875rem; color: var(--ajag-text-muted); margin-top: 0.2rem; padding: 0 0.125rem; }
.ajag-conv-compose { flex-shrink: 0; border-top: 1px solid var(--ajag-border); background: var(--ajag-card-bg); }
.ajag-conv-compose-toggle { width: 100%; padding: 0.625rem 1rem; display: flex; align-items: center; justify-content: center; gap: 0.5rem; font-size: 0.8125rem; font-weight: 500; color: var(--ajag-primary); background: transparent; border: none; cursor: pointer; transition: background var(--ajag-anim-fast); font-family: 'Plus Jakarta Sans', sans-serif; }
.ajag-conv-compose-toggle:hover { background: var(--ajag-primary-light); }
.ajag-conv-compose-form { padding: 0.75rem; display: flex; flex-direction: column; gap: 0.5rem; border-top: 1px solid var(--ajag-border-soft); }
.ajag-conv-input-text { width: 100%; border: 1.5px solid var(--ajag-border); border-radius: var(--ajag-radius-sm); padding: 0.5rem 0.75rem; font-size: 0.8125rem; color: var(--ajag-text); background: var(--ajag-card-bg); transition: border-color var(--ajag-anim-fast), box-shadow var(--ajag-anim-fast); outline: none; font-family: 'Plus Jakarta Sans', sans-serif; }
.ajag-conv-input-text:focus { border-color: var(--ajag-primary); box-shadow: 0 0 0 3px rgba(27,75,156,.1); }
.ajag-conv-textarea { resize: vertical; min-height: 64px; }
.ajag-conv-compose--prive { padding: 0.625rem 0.75rem; }
.ajag-conv-compose-row { display: flex; align-items: flex-end; gap: 0.5rem; }
.ajag-conv-textarea-prive { flex: 1; resize: none; min-height: 44px; max-height: 120px; overflow-y: auto; }
.ajag-conv-compose-hint { font-size: 0.6875rem; color: var(--ajag-text-muted); margin: 0.3rem 0 0; text-align: right; }
.ajag-conv-send-btn { padding: 0.5rem 1rem; border-radius: var(--ajag-radius-sm); font-size: 0.8125rem; font-weight: 600; border: none; cursor: pointer; transition: background var(--ajag-anim-fast), transform 0.1s; font-family: 'Plus Jakarta Sans', sans-serif; }
.ajag-conv-send-btn:active { transform: scale(0.97); }
.ajag-conv-send-btn--email { background: linear-gradient(135deg, var(--ajag-primary), #2563EB); color: white; width: 100%; }
.ajag-conv-send-icon-btn { flex-shrink: 0; width: 40px; height: 40px; border-radius: 50%; background: #25D366; border: none; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: background var(--ajag-anim-fast), transform 0.1s; color: white; }
.ajag-conv-send-icon-btn:hover { background: #1db859; }
.ajag-conv-send-icon-btn:active { transform: scale(0.93); }
.ajag-conv-send-icon-btn svg { width: 18px; height: 18px; }

/* ═══════════════════════════════════════════════════════════════
   § 48. Passeport Compétences
   ═══════════════════════════════════════════════════════════════ */

.ajag-passport-honors-count { display: inline-flex; align-items: center; gap: 0.3rem; font-size: 0.8rem; font-weight: 600; color: #92400E; background: var(--ajag-gold-light); border: 1px solid #FDE68A; border-radius: var(--ajag-radius-pill); padding: 0.2rem 0.625rem; }
.ajag-passport-comp-count { font-size: 0.8rem; font-weight: 500; color: var(--ajag-text-muted); }
.ajag-passport-honors-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(100px, 1fr)); gap: 0.875rem; margin: 0.875rem 0 1.25rem; }
.ajag-passport-honor-card { display: flex; flex-direction: column; align-items: center; gap: 0.375rem; padding: 0.875rem 0.5rem; background: linear-gradient(135deg, var(--ajag-gold-light) 0%, #FFF9E6 100%); border: 1px solid #FDE68A; border-radius: var(--ajag-radius); text-align: center; transition: transform var(--ajag-anim) ease, box-shadow var(--ajag-anim) ease; }
.ajag-passport-honor-card:hover { transform: translateY(-2px); box-shadow: 0 4px 12px rgba(245,194,0,.25); }
.ajag-passport-honor-icon { width: 48px; height: 48px; display: flex; align-items: center; justify-content: center; background: var(--ajag-gold-light); border-radius: 50%; }
.ajag-passport-honor-img { width: 40px; height: 40px; object-fit: contain; }
.ajag-passport-honor-nom { font-size: 0.75rem; font-weight: 600; color: var(--ajag-primary); line-height: 1.3; }
.ajag-passport-honor-date { font-size: 0.6875rem; color: var(--ajag-text-muted); }
.ajag-passport-sub-header { font-size: 0.75rem; font-weight: 700; color: var(--ajag-text-soft); text-transform: uppercase; letter-spacing: 0.05em; margin: 1rem 0 0.5rem; padding-bottom: 0.375rem; border-bottom: 1px solid var(--ajag-border); }
.ajag-passport-sub-header--refuse { color: var(--ajag-danger); border-color: var(--ajag-danger-light); }
.ajag-passport-progress-list { display: flex; flex-direction: column; gap: 0.5rem; margin-bottom: 0.75rem; }
.ajag-passport-progress-row { display: flex; align-items: center; gap: 0.625rem; padding: 0.5rem 0.625rem; background: var(--ajag-bg); border-radius: var(--ajag-radius-sm); border: 1px solid var(--ajag-border-soft); }
.ajag-passport-progress-row--refuse { background: var(--ajag-danger-light); border-color: #FEE2E2; }
.ajag-passport-progress-nom { flex: 1; font-size: 0.8125rem; color: var(--ajag-text); font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ajag-passport-progress-track { flex: 0 0 80px; height: 6px; background: var(--ajag-border); border-radius: var(--ajag-radius-pill); overflow: hidden; }
.ajag-passport-progress-fill { height: 100%; background: var(--ajag-primary); border-radius: var(--ajag-radius-pill); transition: width 0.3s ease; }
.ajag-passport-progress-pct { font-size: 0.6875rem; color: var(--ajag-text-muted); min-width: 28px; text-align: right; }
.ajag-passport-note { font-size: 0.75rem; color: var(--ajag-danger); font-style: italic; }
.ajag-passport-statut-chip { font-size: 0.6875rem; font-weight: 600; border-radius: var(--ajag-radius-pill); padding: 0.15rem 0.5rem; white-space: nowrap; }
.ajag-passport-statut-chip--en_cours { background: var(--ajag-info-light); color: #1D4ED8; }
.ajag-passport-statut-chip--pret { background: var(--ajag-success-light); color: #059669; }
.ajag-passport-statut-chip--session_planifiee { background: var(--ajag-purple-light); color: var(--ajag-purple); }
.ajag-passport-statut-chip--examine { background: var(--ajag-warning-light); color: #D97706; }
.ajag-passport-competences { display: flex; flex-direction: column; gap: 1rem; margin-top: 0.5rem; }
.ajag-passport-cat-group { display: flex; flex-direction: column; gap: 0.5rem; }
.ajag-passport-cat-label { font-size: 0.75rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; }
.ajag-passport-chips { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.ajag-passport-chip { display: inline-flex; align-items: center; gap: 0.3rem; padding: 0.3rem 0.625rem; border-radius: var(--ajag-radius-pill); font-size: 0.8rem; font-weight: 500; border: 1px solid transparent; line-height: 1.3; }
.ajag-passport-chip-niveau { font-size: 0.6875rem; font-weight: 400; opacity: 0.7; padding-left: 0.2rem; border-left: 1px solid currentColor; margin-left: 0.2rem; }
.ajag-passport-separator { border: none; border-top: 2px dashed var(--ajag-border); }

/* ═══════════════════════════════════════════════════════════════
   § 49. RGPD — Onglet fiche + Rapport
   ═══════════════════════════════════════════════════════════════ */

.ajag-rgpd-chip { display: inline-flex; align-items: center; gap: 0.35rem; font-size: 0.8rem; font-weight: 600; border-radius: var(--ajag-radius-pill); padding: 0.25rem 0.75rem; }
.ajag-rgpd-chip--ok { background: var(--ajag-success-light); color: #059669; border: 1px solid #A7F3D0; }
.ajag-rgpd-chip--warn { background: var(--ajag-warning-light); color: #D97706; border: 1px solid #FDE68A; }
.ajag-rgpd-alert { display: flex; align-items: flex-start; gap: 0.75rem; padding: 0.875rem 1rem; margin: 0.75rem 0; background: #FFF7ED; border: 1px solid #FDBA74; border-radius: var(--ajag-radius); color: #C2410C; }
.ajag-rgpd-alert svg { flex-shrink: 0; margin-top: 0.125rem; }
.ajag-rgpd-alert strong { display: block; font-size: 0.875rem; margin-bottom: 0.25rem; }
.ajag-rgpd-alert p { margin: 0; font-size: 0.8rem; line-height: 1.45; color: #9A3412; }
.ajag-rgpd-base-legale, .ajag-rgpd-destinataire { font-size: 0.75rem; color: var(--ajag-text-muted); font-style: italic; }
.ajag-rgpd-inventory { display: flex; flex-direction: column; border: 1px solid var(--ajag-border); border-radius: var(--ajag-radius); overflow: hidden; margin-bottom: 0.5rem; }
.ajag-rgpd-inv-row { display: flex; align-items: center; gap: 0.75rem; padding: 0.75rem 1rem; border-bottom: 1px solid var(--ajag-border-soft); background: var(--ajag-card-bg); transition: background var(--ajag-anim-fast); }
.ajag-rgpd-inv-row:last-child { border-bottom: none; }
.ajag-rgpd-inv-row:hover { background: var(--ajag-bg); }
.ajag-rgpd-inv-row--encrypted { background: #FFF8F8; }
.ajag-rgpd-inv-icon { width: 30px; height: 30px; flex-shrink: 0; border-radius: var(--ajag-radius-sm); display: flex; align-items: center; justify-content: center; }
.ajag-rgpd-inv-icon--blue { background: var(--ajag-info-light); color: #2563EB; }
.ajag-rgpd-inv-icon--green { background: var(--ajag-success-light); color: #059669; }
.ajag-rgpd-inv-icon--amber { background: var(--ajag-warning-light); color: #D97706; }
.ajag-rgpd-inv-icon--red { background: var(--ajag-danger-light); color: var(--ajag-danger); }
.ajag-rgpd-inv-icon--purple { background: var(--ajag-purple-light); color: var(--ajag-purple); }
.ajag-rgpd-inv-body { flex: 1; display: flex; flex-direction: column; gap: 0.1rem; min-width: 0; }
.ajag-rgpd-inv-label { font-size: 0.8125rem; font-weight: 600; color: var(--ajag-text); }
.ajag-rgpd-inv-detail { font-size: 0.75rem; color: var(--ajag-text-soft); line-height: 1.4; }
.ajag-rgpd-inv-retention { font-size: 0.6875rem; font-weight: 600; color: var(--ajag-text-soft); background: var(--ajag-bg); border-radius: 5px; padding: 0.2rem 0.5rem; white-space: nowrap; flex-shrink: 0; }
.ajag-rgpd-inv-retention--encrypted { background: var(--ajag-danger-light); color: var(--ajag-danger); }
.ajag-rgpd-droits-list { display: flex; flex-direction: column; gap: 0.375rem; }
.ajag-rgpd-droit-row { display: flex; align-items: center; justify-content: space-between; padding: 0.5rem 0.75rem; background: var(--ajag-primary-light); border-radius: var(--ajag-radius-sm); border-left: 3px solid var(--ajag-primary); }
.ajag-rgpd-droit-label { font-size: 0.8125rem; font-weight: 500; color: var(--ajag-primary); }
.ajag-rgpd-droit-date { font-size: 0.75rem; color: var(--ajag-text-muted); }

/* ═══════════════════════════════════════════════════════════════
   § 50. Communication Hub — Lottie notification.json hero
   ═══════════════════════════════════════════════════════════════ */

.ajag-comm-hero { background: linear-gradient(135deg, var(--ajag-primary) 0%, #2563EB 60%, #7C3AED 100%); border-radius: var(--ajag-radius-xl); padding: 1.625rem 2rem 0; margin-bottom: 0.5rem; overflow: hidden; position: relative; box-shadow: var(--ajag-shadow-lg); animation: ajag-card-in var(--ajag-anim-slow) ease both; }
.ajag-comm-hero::before { content: ''; position: absolute; top: -60%; right: -5%; width: 380px; height: 380px; background: radial-gradient(circle, rgba(255,255,255,.1) 0%, transparent 70%); border-radius: 50%; pointer-events: none; }
.ajag-comm-hero-lottie { position: absolute; right: 2rem; top: 50%; transform: translateY(-50%); opacity: 0.85; animation: ajag-float 5s ease-in-out infinite; pointer-events: none; }
.ajag-comm-hero-inner { display: flex; align-items: flex-start; justify-content: space-between; gap: 1.5rem; flex-wrap: wrap; margin-bottom: 1.5rem; }
.ajag-comm-hero-left { display: flex; align-items: flex-start; gap: 1rem; flex: 1; min-width: 0; }
.ajag-comm-hero-icon-wrap { width: 2.75rem; height: 2.75rem; border-radius: 10px; background: rgba(255,255,255,.12); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.ajag-comm-hero-title { font-size: 1.375rem; font-weight: 700; color: white; letter-spacing: -0.02em; line-height: 1.2; margin: 0 0 0.25rem; }
.ajag-comm-hero-gold-bar { width: 28px; height: 3px; background: var(--ajag-gold); border-radius: 2px; margin: 0.375rem 0 0.5rem; }
.ajag-comm-hero-sub { font-size: 0.875rem; color: rgba(255,255,255,.65); margin: 0; }
.ajag-comm-hero-right { display: flex; flex-direction: column; align-items: flex-end; gap: 0.5rem; flex-shrink: 0; }
.ajag-comm-canal-stat { display: flex; align-items: center; gap: 0.375rem; font-size: 0.8125rem; color: rgba(255,255,255,.75); }
.ajag-comm-canal-sep { color: rgba(255,255,255,.3); font-size: 0.75rem; }
.ajag-comm-hero-actions { display: flex; align-items: center; gap: 0.625rem; margin-top: 0.375rem; flex-wrap: wrap; justify-content: flex-end; }
.ajag-comm-btn-primary { display: inline-flex; align-items: center; gap: 0.375rem; padding: 0.5rem 1.125rem; background: var(--ajag-gold); color: var(--ajag-primary-dark); border-radius: var(--ajag-radius-sm); font-size: 0.875rem; font-weight: 700; text-decoration: none; transition: filter var(--ajag-anim-fast); font-family: 'Plus Jakarta Sans', sans-serif; }
.ajag-comm-btn-primary:hover { filter: brightness(1.05); }
.ajag-comm-btn-ghost { display: inline-flex; align-items: center; gap: 0.25rem; padding: 0.4375rem 0.875rem; background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.2); color: rgba(255,255,255,.9); border-radius: var(--ajag-radius-sm); font-size: 0.8125rem; font-weight: 500; text-decoration: none; transition: background var(--ajag-anim-fast); font-family: 'Plus Jakarta Sans', sans-serif; }
.ajag-comm-btn-ghost:hover { background: rgba(255,255,255,.2); }
.ajag-comm-kpi-row { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid rgba(255,255,255,.12); margin: 0 -2rem; }
.ajag-comm-kpi { padding: 0.875rem 1.25rem; border-right: 1px solid rgba(255,255,255,.1); text-align: center; }
.ajag-comm-kpi:last-child { border-right: none; }
.ajag-comm-kpi--alert .ajag-comm-kpi-value { color: #FCD34D; }
.ajag-comm-kpi-value { display: block; font-size: 1.625rem; font-weight: 700; color: white; line-height: 1.1; animation: ajag-count-up var(--ajag-anim-slow) ease both; }
.ajag-comm-kpi-label { display: block; font-size: 0.6875rem; color: rgba(255,255,255,.55); text-transform: uppercase; letter-spacing: 0.06em; font-weight: 500; margin-top: 0.25rem; }
.ajag-comm-validation-zone { background: var(--ajag-warning-light); border: 1.5px solid #FDE68A; border-radius: var(--ajag-radius); overflow: hidden; }
.ajag-comm-validation-header { display: flex; align-items: center; justify-content: space-between; padding: 0.75rem 1.25rem; border-bottom: 1px solid #FDE68A; background: #FEF9C3; }
.ajag-comm-validation-title { font-size: 0.9375rem; font-weight: 600; color: #B45309; margin: 0; }
.ajag-comm-pulse-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--ajag-warning); animation: commPulse 2s ease-in-out infinite; }
@keyframes commPulse { 0%,100% { opacity: 1; transform: scale(1); } 50% { opacity: 0.5; transform: scale(0.75); } }
.ajag-comm-validation-list { display: flex; flex-direction: column; }
.ajag-comm-validation-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 0.75rem 1.25rem; border-bottom: 1px solid #FEF3C7; flex-wrap: wrap; }
.ajag-comm-validation-row:last-child { border-bottom: none; }
.ajag-comm-validation-info { display: flex; align-items: center; gap: 0.625rem; flex: 1; min-width: 0; flex-wrap: wrap; }
.ajag-comm-validation-titre { font-size: 0.9375rem; font-weight: 600; color: var(--ajag-text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 280px; }
.ajag-comm-validation-date { font-size: 0.75rem; color: var(--ajag-text-muted); white-space: nowrap; }
.ajag-comm-validation-actions { display: flex; align-items: center; gap: 0.5rem; flex-shrink: 0; }
.ajag-comm-btn-approuver { display: inline-flex; align-items: center; gap: 0.3rem; padding: 0.4rem 0.875rem; background: var(--ajag-success); color: white; border: none; border-radius: var(--ajag-radius-sm); font-size: 0.8125rem; font-weight: 600; cursor: pointer; transition: background var(--ajag-anim-fast); font-family: 'Plus Jakarta Sans', sans-serif; }
.ajag-comm-btn-approuver:hover { background: #16A34A; }
.ajag-comm-send-zone { background: var(--ajag-success-light); border: 1.5px solid #BBF7D0; border-radius: var(--ajag-radius-lg); padding: 1.125rem 1.5rem; margin-bottom: 1.25rem; }
.ajag-comm-btn-envoyer { display: inline-flex; align-items: center; gap: 0.3rem; padding: 0.4rem 0.875rem; background: var(--ajag-success); color: white; border: none; border-radius: var(--ajag-radius-sm); font-size: 0.8125rem; font-weight: 600; cursor: pointer; transition: background var(--ajag-anim-fast); font-family: 'Plus Jakarta Sans', sans-serif; }
.ajag-comm-btn-envoyer:hover { background: #16A34A; }
.ajag-comm-btn-envoyer--planifie { background: var(--ajag-purple); }
.ajag-comm-btn-envoyer--planifie:hover { background: #6D28D9; }
.ajag-comm-btn-bloquer { display: inline-flex; align-items: center; gap: 0.3rem; padding: 0.4rem 0.875rem; background: var(--ajag-danger-light); color: #B91C1C; border: 1px solid #FECACA; border-radius: var(--ajag-radius-sm); font-size: 0.8125rem; font-weight: 600; cursor: pointer; transition: background var(--ajag-anim-fast); font-family: 'Plus Jakarta Sans', sans-serif; }
.ajag-comm-btn-bloquer:hover { background: #FCA5A5; }
.ajag-comm-btn-voir { font-size: 0.8125rem; font-weight: 500; color: var(--ajag-text-muted); text-decoration: none; white-space: nowrap; transition: color var(--ajag-anim-fast); }
.ajag-comm-btn-voir:hover { color: var(--ajag-primary); }
.ajag-comm-quick-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.875rem; animation: ajag-fade-up var(--ajag-anim-slow) 100ms ease both; }
.ajag-comm-quick-card { display: flex; align-items: center; gap: 0.875rem; padding: 1rem 1.125rem; background: var(--ajag-card-bg); border: 1px solid var(--ajag-border); border-top: 3px solid var(--qc-accent, var(--ajag-primary)); border-radius: var(--ajag-radius); text-decoration: none; transition: box-shadow var(--ajag-anim) ease, transform var(--ajag-anim) ease; box-shadow: var(--ajag-shadow-sm); }
.ajag-comm-quick-card:hover { box-shadow: var(--ajag-shadow); transform: translateY(-1px); }
.ajag-comm-quick-icon { width: 2.5rem; height: 2.5rem; border-radius: 9px; background: var(--ajag-primary-light); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.ajag-comm-quick-title { font-size: 0.9375rem; font-weight: 600; color: var(--ajag-text); margin: 0 0 0.125rem; }
.ajag-comm-quick-desc { font-size: 0.75rem; color: var(--ajag-text-muted); margin: 0; }
.ajag-comm-quick-arrow { margin-left: auto; flex-shrink: 0; transition: transform var(--ajag-anim-fast); color: var(--ajag-text-muted); }
.ajag-comm-quick-card:hover .ajag-comm-quick-arrow { transform: translateX(2px); }
.ajag-comm-feed-row { display: flex; align-items: center; gap: 0.875rem; padding: 0.75rem 1.5rem; border-bottom: 1px solid var(--ajag-border-soft); text-decoration: none; transition: background var(--ajag-anim-fast); position: relative; }
.ajag-comm-feed-row:last-child { border-bottom: none; }
.ajag-comm-feed-row:hover { background: var(--ajag-bg); }
.ajag-comm-feed-bar { position: absolute; left: 0; top: 0; bottom: 0; width: 3.5px; border-radius: 0 2px 2px 0; }
.ajag-comm-feed-canal { width: 1.75rem; height: 1.75rem; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.ajag-comm-feed-body { flex: 1; min-width: 0; }
.ajag-comm-feed-title { display: flex; align-items: center; gap: 0.375rem; font-size: 0.9375rem; font-weight: 600; color: var(--ajag-text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 400px; }
.ajag-comm-feed-meta { display: flex; align-items: center; gap: 0.375rem; font-size: 0.8125rem; color: var(--ajag-text-muted); margin-top: 0.1875rem; }
.ajag-comm-feed-status { display: inline-flex; align-items: center; padding: 0.1875rem 0.625rem; border-radius: var(--ajag-radius-pill); font-size: 0.75rem; font-weight: 600; white-space: nowrap; flex-shrink: 0; }
.ajag-comm-feed-edit { display: flex; align-items: center; justify-content: center; width: 1.875rem; height: 1.875rem; border-radius: 6px; background: var(--ajag-bg); color: var(--ajag-text-muted); text-decoration: none; transition: background var(--ajag-anim-fast), color var(--ajag-anim-fast); flex-shrink: 0; }
.ajag-comm-feed-edit:hover { background: var(--ajag-border); color: var(--ajag-primary); }
.ajag-comm-urgence-badge { display: inline-flex; align-items: center; gap: 0.25rem; background: var(--ajag-danger-light); color: #B91C1C; font-size: 0.6875rem; font-weight: 700; padding: 0.125rem 0.5rem; border-radius: var(--ajag-radius-pill); white-space: nowrap; }
.ajag-comm-canal-pill { display: inline-flex; align-items: center; gap: 0.25rem; font-size: 0.6875rem; font-weight: 600; padding: 0.125rem 0.5rem; border-radius: var(--ajag-radius-pill); white-space: nowrap; }
.ajag-comm-link-small { font-size: 0.75rem; color: var(--ajag-text-muted); text-decoration: none; font-weight: 500; transition: color var(--ajag-anim-fast); white-space: nowrap; }
.ajag-comm-link-small:hover { color: var(--ajag-primary); }
.ajag-comm-empty { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 3rem; text-align: center; color: var(--ajag-border); }

/* ═══════════════════════════════════════════════════════════════
   § 51. Calendrier Éditorial
   ═══════════════════════════════════════════════════════════════ */

.ajag-cal-hero { background: linear-gradient(135deg, var(--ajag-primary) 0%, #2563EB 60%, #7C3AED 100%); border-radius: var(--ajag-radius-xl); margin-bottom: 1.25rem; overflow: hidden; box-shadow: var(--ajag-shadow-lg); animation: ajag-card-in var(--ajag-anim-slow) ease both; position: relative; }
.ajag-cal-hero::before { content: ''; position: absolute; top: -60%; right: -5%; width: 380px; height: 380px; background: radial-gradient(circle, rgba(255,255,255,.1) 0%, transparent 70%); border-radius: 50%; pointer-events: none; }
.ajag-cal-hero-inner { display: flex; align-items: center; justify-content: space-between; padding: 1.5rem 1.75rem 1.25rem; flex-wrap: wrap; gap: 1rem; position: relative; z-index: 1; }
.ajag-cal-hero-icon { width: 2.5rem; height: 2.5rem; border-radius: 0.625rem; background: rgba(255,255,255,.12); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.ajag-cal-hero-title { font-size: 1.25rem; font-weight: 700; color: white; margin: 0 0 0.25rem; line-height: 1.3; }
.ajag-cal-hero-gold-bar { width: 2.5rem; height: 3px; background: var(--ajag-gold); border-radius: var(--ajag-radius-pill); margin: 0.375rem 0; }
.ajag-cal-hero-sub { font-size: 0.875rem; color: rgba(255,255,255,.65); margin: 0; }
.ajag-cal-back-btn { font-size: 0.8125rem; font-weight: 500; color: rgba(255,255,255,.75); text-decoration: none; padding: 0.5rem 0.875rem; border: 1px solid rgba(255,255,255,.2); border-radius: var(--ajag-radius-sm); transition: background var(--ajag-anim-fast), color var(--ajag-anim-fast); white-space: nowrap; }
.ajag-cal-back-btn:hover { background: rgba(255,255,255,.08); color: white; }
.ajag-cal-nav { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1rem; flex-wrap: wrap; gap: 0.75rem; }
.ajag-cal-nav-left { display: flex; align-items: center; gap: 0.625rem; }
.ajag-cal-nav-btn { width: 2rem; height: 2rem; border-radius: var(--ajag-radius-sm); background: var(--ajag-card-bg); border: 1px solid var(--ajag-border); display: flex; align-items: center; justify-content: center; cursor: pointer; color: var(--ajag-text-soft); transition: background var(--ajag-anim-fast); }
.ajag-cal-nav-btn:hover { background: var(--ajag-bg); }
.ajag-cal-month-title { font-size: 1.0625rem; font-weight: 700; color: var(--ajag-primary); min-width: 11rem; text-align: center; margin: 0; }
.ajag-cal-today-btn { font-size: 0.8125rem; font-weight: 500; color: var(--ajag-primary); background: var(--ajag-primary-light); border: 1px solid rgba(27,75,156,.2); border-radius: var(--ajag-radius-sm); padding: 0.3125rem 0.75rem; cursor: pointer; transition: background var(--ajag-anim-fast); font-family: 'Plus Jakarta Sans', sans-serif; }
.ajag-cal-today-btn:hover { background: #DBEAFE; }
.ajag-cal-add-btn { display: inline-flex; align-items: center; gap: 0.375rem; font-size: 0.875rem; font-weight: 600; color: white; background: linear-gradient(135deg, var(--ajag-primary), #2563EB); border: none; border-radius: var(--ajag-radius-sm); padding: 0.5rem 1.125rem; cursor: pointer; box-shadow: 0 2px 8px rgba(27,75,156,.25); transition: box-shadow var(--ajag-anim-fast), transform var(--ajag-anim-fast); font-family: 'Plus Jakarta Sans', sans-serif; }
.ajag-cal-add-btn:hover { box-shadow: 0 4px 16px rgba(27,75,156,.35); transform: translateY(-1px); }
.ajag-cal-wrapper { background: var(--ajag-card-bg); border: 1px solid var(--ajag-border); border-radius: var(--ajag-radius-lg); overflow: hidden; box-shadow: var(--ajag-shadow-sm); margin-bottom: 1rem; }
.ajag-cal-header-row { display: grid; grid-template-columns: repeat(7, 1fr); border-bottom: 1px solid var(--ajag-border); }
.ajag-cal-header-cell { font-size: 0.75rem; font-weight: 700; color: var(--ajag-text-muted); text-transform: uppercase; letter-spacing: 0.04em; padding: 0.625rem 0; text-align: center; }
.ajag-cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); }
.ajag-cal-cell { min-height: 7rem; padding: 0.5rem 0.375rem; border-right: 1px solid var(--ajag-border-soft); border-bottom: 1px solid var(--ajag-border-soft); position: relative; transition: background var(--ajag-anim-fast); vertical-align: top; }
.ajag-cal-cell:nth-child(7n) { border-right: none; }
.ajag-cal-cell--empty { background: var(--ajag-border-soft); }
.ajag-cal-cell--clickable { cursor: pointer; }
.ajag-cal-cell--clickable:hover { background: var(--ajag-primary-light); }
.ajag-cal-cell--today { background: rgba(27,75,156,.04); }
.ajag-cal-cell--has-events { background: rgba(27,75,156,.02); }
.ajag-cal-day-num { font-size: 0.75rem; font-weight: 500; color: var(--ajag-text-muted); display: block; margin-bottom: 0.375rem; line-height: 1; }
.ajag-cal-day-num--today { color: white; background: var(--ajag-primary); border-radius: var(--ajag-radius-pill); width: 1.375rem; height: 1.375rem; display: inline-flex; align-items: center; justify-content: center; font-weight: 700; font-size: 0.75rem; }
.ajag-cal-event { border-radius: 0.3125rem; padding: 0.1875rem 0.375rem; margin-bottom: 0.25rem; cursor: pointer; transition: filter var(--ajag-anim-fast); overflow: hidden; }
.ajag-cal-event:hover { filter: brightness(0.95); }
.ajag-cal-event-title { font-size: 0.6875rem; font-weight: 600; display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; line-height: 1.4; }
.ajag-cal-event-canaux { display: flex; gap: 0.2rem; margin-top: 0.125rem; align-items: center; opacity: 0.75; }
.ajag-cal-canal-dot { display: flex; align-items: center; }
.ajag-cal-legend { display: flex; align-items: center; gap: 1.25rem; flex-wrap: wrap; padding: 0.625rem 0; font-size: 0.8125rem; color: var(--ajag-text-muted); }
.ajag-cal-legend-item { display: flex; align-items: center; gap: 0.4rem; }
.ajag-cal-legend-dot { width: 0.75rem; height: 0.75rem; border-radius: 0.1875rem; }
.ajag-cal-legend-today { width: 1.125rem; height: 1.125rem; border-radius: var(--ajag-radius-pill); background: var(--ajag-primary); display: inline-flex; align-items: center; justify-content: center; font-size: 0.625rem; color: white; font-weight: 700; line-height: 1; }
.ajag-cal-modal-overlay { position: fixed; inset: 0; z-index: 9999; background: rgba(15,23,42,.5); backdrop-filter: blur(4px); display: flex; align-items: center; justify-content: center; padding: 1rem; animation: ajag-fade-in 180ms ease-out; }
.ajag-cal-modal { background: var(--ajag-card-bg); border-radius: var(--ajag-radius-xl); width: 100%; max-width: 36rem; max-height: 90vh; overflow-y: auto; box-shadow: var(--ajag-shadow-lg); animation: ajag-scale-in 200ms ease-out; }
.ajag-cal-modal-header { display: flex; align-items: flex-start; justify-content: space-between; padding: 1.25rem 1.5rem 1rem; border-bottom: 1px solid var(--ajag-border-soft); gap: 1rem; }
.ajag-cal-modal-title { font-size: 1.0625rem; font-weight: 700; color: var(--ajag-primary); margin: 0 0 0.25rem; }
.ajag-cal-modal-sub { font-size: 0.8125rem; color: var(--ajag-text-muted); margin: 0; }
.ajag-cal-modal-close { width: 2rem; height: 2rem; border-radius: var(--ajag-radius-sm); background: var(--ajag-bg); border: 1px solid var(--ajag-border); display: flex; align-items: center; justify-content: center; cursor: pointer; color: var(--ajag-text-muted); flex-shrink: 0; transition: background var(--ajag-anim-fast); }
.ajag-cal-modal-close:hover { background: var(--ajag-border); }
.ajag-cal-modal-body { padding: 1.25rem 1.5rem; display: flex; flex-direction: column; gap: 1rem; }
.ajag-cal-field { display: flex; flex-direction: column; gap: 0.375rem; }
.ajag-cal-field-row { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 0.75rem; }
.ajag-cal-label { font-size: 0.8125rem; font-weight: 600; color: var(--ajag-text-soft); }
.ajag-cal-input { width: 100%; padding: 0.5rem 0.75rem; border: 1.5px solid var(--ajag-border); border-radius: var(--ajag-radius-sm); font-size: 0.875rem; color: var(--ajag-text); background: var(--ajag-card-bg); transition: border-color var(--ajag-anim-fast), box-shadow var(--ajag-anim-fast); font-family: 'Plus Jakarta Sans', sans-serif; }
.ajag-cal-input:focus { outline: none; border-color: var(--ajag-primary); box-shadow: 0 0 0 3px rgba(27,75,156,.1); }
.ajag-cal-color-input { width: 2.5rem; height: 2.25rem; padding: 0.125rem; border-radius: var(--ajag-radius-sm); border: 1.5px solid var(--ajag-border); cursor: pointer; }
.ajag-cal-checkgroup { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.ajag-cal-check-label { display: inline-flex; align-items: center; gap: 0.4rem; font-size: 0.8125rem; color: var(--ajag-text-soft); cursor: pointer; background: var(--ajag-bg); border: 1px solid var(--ajag-border); border-radius: var(--ajag-radius-sm); padding: 0.3125rem 0.625rem; transition: background var(--ajag-anim-fast), border-color var(--ajag-anim-fast); user-select: none; font-family: 'Plus Jakarta Sans', sans-serif; }
.ajag-cal-check-label:has(.ajag-cal-check:checked) { background: var(--ajag-primary-light); border-color: rgba(27,75,156,.3); color: var(--ajag-primary); }
.ajag-cal-check { accent-color: var(--ajag-primary); width: 0.875rem; height: 0.875rem; }
.ajag-cal-helper { font-size: 0.75rem; color: var(--ajag-text-muted); margin: 0; }
.ajag-cal-modal-footer { display: flex; align-items: center; justify-content: flex-end; padding: 1rem 1.5rem 1.25rem; border-top: 1px solid var(--ajag-border-soft); gap: 0.625rem; }
.ajag-cal-btn-save { display: inline-flex; align-items: center; gap: 0.375rem; background: linear-gradient(135deg, var(--ajag-primary), #2563EB); color: white; font-size: 0.875rem; font-weight: 600; padding: 0.5rem 1.125rem; border-radius: var(--ajag-radius-pill); border: none; cursor: pointer; box-shadow: 0 2px 8px rgba(27,75,156,.25); transition: box-shadow var(--ajag-anim-fast), transform var(--ajag-anim-fast); font-family: 'Plus Jakarta Sans', sans-serif; }
.ajag-cal-btn-save:hover:not(:disabled) { box-shadow: 0 4px 16px rgba(27,75,156,.35); transform: translateY(-1px); }
.ajag-cal-btn-save:disabled { opacity: 0.6; cursor: not-allowed; }
.ajag-cal-btn-cancel { font-size: 0.875rem; font-weight: 500; color: var(--ajag-text-soft); background: var(--ajag-bg); border: 1.5px solid var(--ajag-border); border-radius: var(--ajag-radius-pill); padding: 0.5rem 0.875rem; cursor: pointer; transition: background var(--ajag-anim-fast); font-family: 'Plus Jakarta Sans', sans-serif; }
.ajag-cal-btn-cancel:hover { background: var(--ajag-border); }
.ajag-cal-btn-danger { display: inline-flex; align-items: center; gap: 0.375rem; font-size: 0.875rem; font-weight: 500; color: #B91C1C; background: var(--ajag-danger-light); border: 1px solid #FECACA; border-radius: var(--ajag-radius-pill); padding: 0.5rem 0.875rem; cursor: pointer; transition: background var(--ajag-anim-fast); margin-right: auto; font-family: 'Plus Jakarta Sans', sans-serif; }
.ajag-cal-btn-danger:hover { background: #FECACA; }

/* ═══════════════════════════════════════════════════════════════
   § 52. Campagnes Dashboard Widget
   ═══════════════════════════════════════════════════════════════ */

.ajag-cdb-topbar { display: flex; align-items: center; gap: 0.5rem; margin-bottom: 1.125rem; font-size: 0.8125rem; color: var(--ajag-text-muted); }
.ajag-cdb-back { display: inline-flex; align-items: center; gap: 0.25rem; color: var(--ajag-primary); font-weight: 500; text-decoration: none; transition: color var(--ajag-anim-fast); }
.ajag-cdb-back:hover { color: var(--ajag-primary-dark); }
.ajag-cdb-sep { color: var(--ajag-border); }
.ajag-cdb-current { color: var(--ajag-text-soft); font-weight: 500; }
.ajag-cdb-kpi-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0.875rem; margin-bottom: 1.125rem; animation: ajag-card-in var(--ajag-anim-slow) ease both; }
.ajag-cdb-kpi { background: var(--ajag-card-bg); border: 1px solid var(--ajag-border); border-radius: var(--ajag-radius-lg); padding: 1rem 1.125rem; display: flex; align-items: flex-start; gap: 0.75rem; box-shadow: var(--ajag-shadow-sm); transition: box-shadow var(--ajag-anim) ease; }
.ajag-cdb-kpi:hover { box-shadow: var(--ajag-shadow); }
.ajag-cdb-kpi--alert { border-color: #FDE68A; background: var(--ajag-warning-light); }
.ajag-cdb-kpi-icon { width: 2.125rem; height: 2.125rem; border-radius: var(--ajag-radius-sm); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.ajag-cdb-kpi-value { font-size: 1.375rem; font-weight: 800; color: var(--ajag-primary); line-height: 1.2; animation: ajag-count-up var(--ajag-anim-slow) ease both; }
.ajag-cdb-kpi-value--alert { color: #B45309; }
.ajag-cdb-kpi-unit { font-size: 1rem; font-weight: 600; margin-left: 0.1rem; }
.ajag-cdb-kpi-empty { color: var(--ajag-border); font-size: 1.25rem; }
.ajag-cdb-kpi-label { font-size: 0.75rem; font-weight: 500; color: var(--ajag-text-muted); margin-top: 0.1rem; }
.ajag-cdb-kpi-helper { font-size: 0.6875rem; color: var(--ajag-text-muted); margin-top: 0.125rem; }
.ajag-cdb-badge { font-size: 0.6875rem; font-weight: 700; border-radius: var(--ajag-radius-pill); padding: 0.1rem 0.5rem; }
.ajag-cdb-panels { display: grid; grid-template-columns: 1fr 1fr; gap: 0.875rem; margin-bottom: 1.5rem; animation: ajag-fade-up var(--ajag-anim-slow) 50ms ease both; }
.ajag-cdb-panel { background: var(--ajag-card-bg); border: 1px solid var(--ajag-border); border-radius: var(--ajag-radius-lg); overflow: hidden; box-shadow: var(--ajag-shadow-sm); }
.ajag-cdb-panel-header { display: flex; align-items: center; justify-content: space-between; padding: 0.875rem 1.125rem 0.75rem; border-bottom: 1px solid var(--ajag-border-soft); }
.ajag-cdb-panel-title-wrap { display: flex; align-items: center; gap: 0.5rem; }
.ajag-cdb-panel-title { font-size: 0.875rem; font-weight: 700; color: var(--ajag-primary); margin: 0; }
.ajag-cdb-panel-action { display: inline-flex; align-items: center; gap: 0.25rem; font-size: 0.75rem; font-weight: 600; color: var(--ajag-primary); background: var(--ajag-primary-light); border: 1px solid rgba(27,75,156,.2); border-radius: var(--ajag-radius-sm); padding: 0.25rem 0.625rem; text-decoration: none; transition: background var(--ajag-anim-fast); }
.ajag-cdb-panel-action:hover { background: #DBEAFE; }
.ajag-cdb-list { display: flex; flex-direction: column; }
.ajag-cdb-list-row { display: flex; align-items: center; gap: 0.625rem; padding: 0.625rem 1.125rem; border-bottom: 1px solid var(--ajag-border-soft); position: relative; }
.ajag-cdb-list-row--link { text-decoration: none; color: inherit; transition: background var(--ajag-anim-fast); }
.ajag-cdb-list-row--link:hover { background: var(--ajag-bg); }
.ajag-cdb-list-bar { width: 3px; height: 2rem; border-radius: var(--ajag-radius-pill); flex-shrink: 0; }
.ajag-cdb-list-clock { flex-shrink: 0; }
.ajag-cdb-list-date { font-size: 0.6875rem; font-weight: 700; color: var(--ajag-purple); margin-bottom: 0.125rem; }
.ajag-cdb-list-body { flex: 1; min-width: 0; }
.ajag-cdb-list-title { font-size: 0.8125rem; font-weight: 600; color: var(--ajag-text); display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ajag-cdb-list-meta { display: flex; align-items: center; gap: 0.375rem; font-size: 0.6875rem; color: var(--ajag-text-muted); margin-top: 0.125rem; }
.ajag-cdb-canal-chip { display: inline-flex; align-items: center; gap: 0.25rem; font-weight: 500; }
.ajag-cdb-list-edit { display: inline-flex; align-items: center; gap: 0.25rem; font-size: 0.75rem; font-weight: 500; color: var(--ajag-primary); background: var(--ajag-primary-light); border: 1px solid rgba(27,75,156,.2); border-radius: var(--ajag-radius-sm); padding: 0.25rem 0.5rem; text-decoration: none; flex-shrink: 0; transition: background var(--ajag-anim-fast); }
.ajag-cdb-list-edit:hover { background: #DBEAFE; }
.ajag-cdb-list-more { font-size: 0.75rem; color: var(--ajag-text-muted); padding: 0.5rem 1.125rem; font-style: italic; }
.ajag-cdb-panel-empty { display: flex; flex-direction: column; align-items: center; padding: 2rem 1.125rem; gap: 0.5rem; color: var(--ajag-text-muted); }
.ajag-cdb-panel-empty p { font-size: 0.875rem; margin: 0; }
.ajag-cdb-empty-cta { font-size: 0.8125rem; font-weight: 500; color: var(--ajag-primary); background: var(--ajag-primary-light); border: 1px solid rgba(27,75,156,.2); border-radius: var(--ajag-radius-sm); padding: 0.375rem 0.875rem; text-decoration: none; margin-top: 0.25rem; transition: background var(--ajag-anim-fast); }
.ajag-cdb-empty-cta:hover { background: #DBEAFE; }

/* ═══════════════════════════════════════════════════════════════
   § 53. TOTP — Enrôlement & Challenge (Lottie success.json)
   ═══════════════════════════════════════════════════════════════ */

.fi-simple-main:has(.ajag-totp-hero) { max-width: 560px !important; padding: 2.25rem !important; }
@media (max-width: 620px) { .fi-simple-main:has(.ajag-totp-hero) { max-width: 100% !important; padding: 1.75rem 1.25rem !important; border-radius: 20px !important; margin: 0 0.75rem !important; } }

.ajag-totp-hero { text-align: center; margin-bottom: 1.5rem; padding-bottom: 1.25rem; border-bottom: 1px solid var(--ajag-border-soft); }
.ajag-totp-hero-logo { width: 72px; height: auto; display: block; margin: 0 auto 0.875rem; filter: drop-shadow(0 4px 12px rgba(27,75,156,.2)); }
.ajag-totp-hero-lottie { margin: 0 auto 0.875rem; display: block; animation: ajag-float 4s ease-in-out infinite; }
.ajag-totp-hero-title { font-size: 1.25rem; font-weight: 700; color: var(--ajag-primary); letter-spacing: -0.02em; line-height: 1.2; margin: 0 0 0.25rem; }
.ajag-totp-hero-gold-bar { width: 32px; height: 3px; background: var(--ajag-gold); border-radius: 2px; margin: 0.375rem auto 0.5rem; }
.ajag-totp-hero-subtitle { font-size: 0.8125rem; color: var(--ajag-text-soft); margin: 0; line-height: 1.45; }

.ajag-totp-section { background: var(--ajag-bg); border: 1px solid var(--ajag-border); border-radius: var(--ajag-radius-lg); padding: 1.125rem 1.25rem; margin-bottom: 1rem; }
.ajag-totp-section-title { font-size: 0.875rem; font-weight: 600; color: var(--ajag-text); margin: 0 0 0.625rem; display: flex; align-items: center; gap: 0.5rem; }
.ajag-totp-section-title svg { flex-shrink: 0; color: var(--ajag-primary); }

.ajag-totp-qr-wrap { display: flex; justify-content: center; padding: 1rem; background: var(--ajag-card-bg); border: 1.5px solid var(--ajag-border); border-radius: var(--ajag-radius); margin: 0.75rem 0; }
.ajag-totp-qr-wrap img { width: 180px; height: 180px; }
.ajag-totp-secret-row { display: flex; align-items: center; gap: 0.5rem; }
.ajag-totp-secret-code { flex: 1; font-family: 'Courier New', Courier, monospace; font-size: 0.9375rem; font-weight: 600; letter-spacing: 0.18em; color: var(--ajag-primary); background: var(--ajag-primary-light); border: 1px solid rgba(27,75,156,.2); border-radius: var(--ajag-radius-sm); padding: 0.625rem 0.875rem; text-align: center; user-select: all; word-break: break-all; }
.ajag-totp-copy-btn { flex-shrink: 0; display: flex; align-items: center; gap: 0.375rem; background: linear-gradient(135deg, var(--ajag-primary), #2563EB); color: white; border: none; border-radius: var(--ajag-radius-sm); padding: 0.625rem 0.875rem; font-size: 0.8125rem; font-weight: 600; cursor: pointer; font-family: 'Plus Jakarta Sans', sans-serif; transition: box-shadow var(--ajag-anim-fast); white-space: nowrap; box-shadow: 0 2px 8px rgba(27,75,156,.25); }
.ajag-totp-copy-btn:hover { box-shadow: 0 4px 16px rgba(27,75,156,.35); }
.ajag-totp-copy-btn.copied { background: linear-gradient(135deg, var(--ajag-success), #16A34A); }
.ajag-totp-copy-btn svg { width: 14px; height: 14px; }
.ajag-totp-manual-toggle { background: none; border: none; font-size: 0.8125rem; color: var(--ajag-text-muted); cursor: pointer; padding: 0; text-decoration: underline; text-underline-offset: 2px; font-family: 'Plus Jakarta Sans', sans-serif; margin-top: 0.625rem; display: block; width: 100%; text-align: center; transition: color var(--ajag-anim-fast); }
.ajag-totp-manual-toggle:hover { color: var(--ajag-primary); }

/* OTP 6 cases */
.ajag-otp-boxes { display: flex; justify-content: center; gap: 0.5rem; margin: 0.875rem 0; }
.ajag-otp-box { width: 48px; height: 56px; text-align: center; font-size: 1.5rem; font-weight: 700; font-family: 'Courier New', Courier, monospace; color: var(--ajag-text); background: var(--ajag-card-bg); border: 2px solid var(--ajag-border); border-radius: var(--ajag-radius); outline: none; transition: border-color var(--ajag-anim-fast), box-shadow var(--ajag-anim-fast), background var(--ajag-anim-fast); caret-color: transparent; -moz-appearance: textfield; }
.ajag-otp-box::-webkit-outer-spin-button, .ajag-otp-box::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.ajag-otp-box:focus { border-color: var(--ajag-primary); box-shadow: 0 0 0 3px rgba(27,75,156,.12); background: var(--ajag-primary-light); }
.ajag-otp-box.filled { border-color: var(--ajag-primary); background: var(--ajag-primary-light); color: var(--ajag-primary); }
.ajag-otp-box.error { border-color: var(--ajag-danger); background: var(--ajag-danger-light); color: #DC2626; }
@media (max-width: 400px) { .ajag-otp-box { width: 40px; height: 50px; font-size: 1.25rem; } .ajag-otp-boxes { gap: 0.375rem; } }

/* Timer 30s */
.ajag-totp-timer-wrap { margin: 0.5rem 0 0.875rem; }
.ajag-totp-timer-label { font-size: 0.75rem; color: var(--ajag-text-muted); text-align: center; margin-bottom: 0.375rem; }
.ajag-totp-timer-track { height: 3px; background: var(--ajag-border); border-radius: var(--ajag-radius-pill); overflow: hidden; }
.ajag-totp-timer-bar { height: 100%; background: linear-gradient(90deg, var(--ajag-primary), var(--ajag-gold)); border-radius: var(--ajag-radius-pill); animation: totp-timer 30s linear infinite; transform-origin: left; }
@keyframes totp-timer { 0% { width: 100%; opacity: 1; } 90% { opacity: 1; } 100% { width: 0%; opacity: 0.4; } }
@media (prefers-reduced-motion: reduce) { .ajag-totp-timer-bar { animation: none; width: 60%; opacity: 0.6; } }

/* Error, submit, desc, help */
.ajag-totp-error { display: flex; align-items: flex-start; gap: 0.625rem; background: var(--ajag-danger-light); border: 1px solid #FECACA; border-radius: var(--ajag-radius); padding: 0.75rem 1rem; margin-bottom: 0.875rem; }
.ajag-totp-error svg { flex-shrink: 0; color: var(--ajag-danger); margin-top: 1px; }
.ajag-totp-error-text { font-size: 0.875rem; color: #B91C1C; line-height: 1.45; margin: 0; }
.ajag-totp-submit-btn { width: 100%; display: flex; align-items: center; justify-content: center; gap: 0.5rem; background: linear-gradient(135deg, var(--ajag-primary), #2563EB); color: white; border: none; border-radius: var(--ajag-radius); padding: 0.875rem 1.5rem; font-size: 0.9375rem; font-weight: 600; cursor: pointer; font-family: 'Plus Jakarta Sans', sans-serif; transition: box-shadow var(--ajag-anim-fast), transform var(--ajag-anim-fast); box-shadow: 0 2px 8px rgba(27,75,156,.25); margin-top: 0.25rem; }
.ajag-totp-submit-btn:hover:not(:disabled) { box-shadow: 0 6px 20px rgba(27,75,156,.35); transform: translateY(-1px); }
.ajag-totp-submit-btn:disabled { opacity: 0.65; cursor: not-allowed; }
.ajag-totp-desc { font-size: 0.875rem; color: var(--ajag-text-soft); line-height: 1.55; margin: 0 0 0.875rem; text-align: center; }
.ajag-totp-desc strong { color: var(--ajag-primary); font-weight: 600; }
.ajag-totp-help-link { display: block; text-align: center; font-size: 0.8125rem; color: var(--ajag-text-muted); margin-top: 1.125rem; text-decoration: none; transition: color var(--ajag-anim-fast); }
.ajag-totp-help-link:hover { color: var(--ajag-primary); }
.ajag-totp-help-link span { text-decoration: underline; text-underline-offset: 2px; }

/* Wizard dots */
.ajag-totp-wizard-progress { display: flex; justify-content: center; align-items: center; gap: 0.5rem; padding: 0.5rem 0 1rem; }
.ajag-totp-wizard-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--ajag-border); transition: background 250ms ease, width 250ms ease; }
.ajag-totp-wizard-dot.active { background: var(--ajag-primary); width: 24px; border-radius: 4px; }
.ajag-totp-wizard-dot.done { background: var(--ajag-gold); }
.ajag-totp-slide { padding: 0; min-height: 0; }
.ajag-totp-slide-nav { display: flex; gap: 0.625rem; align-items: center; margin-top: 0.875rem; }
.ajag-totp-btn-back { background: none; border: 1.5px solid var(--ajag-border); border-radius: var(--ajag-radius); padding: 0.8125rem 1rem; font-size: 0.875rem; font-weight: 500; color: var(--ajag-text-soft); cursor: pointer; font-family: 'Plus Jakarta Sans', sans-serif; white-space: nowrap; transition: border-color var(--ajag-anim-fast), color var(--ajag-anim-fast); }
.ajag-totp-btn-back:hover { border-color: var(--ajag-primary); color: var(--ajag-primary); }
.ajag-totp-ms-logo-wrap { width: 72px; height: 72px; border-radius: 18px; box-shadow: 0 4px 16px rgba(0,120,212,.22); overflow: hidden; flex-shrink: 0; }
.ajag-totp-store-btn { display: flex; align-items: center; gap: 0.75rem; background: var(--ajag-bg); border: 1.5px solid var(--ajag-border); border-radius: var(--ajag-radius); padding: 0.75rem 1rem; cursor: default; transition: border-color var(--ajag-anim-fast); }
.ajag-totp-store-btn:hover { border-color: var(--ajag-border); }

/* ═══════════════════════════════════════════════════════════════
   § 54. Responsive global BO
   ═══════════════════════════════════════════════════════════════ */

@media (max-width: 1280px) {
  .ajag-fiche-split { grid-template-columns: 1fr; }
  .ajag-conv-panel { position: static; height: 520px; }
}
@media (max-width: 1024px) {
  .ajag-comm-quick-grid { grid-template-columns: repeat(2, 1fr); }
  .ajag-comm-kpi-row { grid-template-columns: repeat(2, 1fr); }
  .ajag-cdb-kpi-row { grid-template-columns: repeat(2, 1fr); }
  .ajag-cdb-panels { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
  .ajag-membres-grid { grid-template-columns: repeat(2, 1fr); }
  .ajag-fiche-hero-inner { flex-direction: column; }
  .ajag-fiche-hero-actions { flex-direction: row; align-items: flex-start; }
  .ajag-fiche-info-grid { grid-template-columns: 1fr; }
  .ajag-fiche-info-row:nth-child(odd) { padding-right: 0; border-right: none; }
  .ajag-fiche-info-row:nth-child(even) { padding-left: 0; }
  .ajag-fiche-edit-grid { grid-template-columns: 1fr; }
  .ajag-fiche-body { padding: 1.25rem 1rem; }
  .ajag-comm-hero { padding: 1.25rem 1.25rem 0; }
  .ajag-comm-hero-inner { flex-direction: column; }
  .ajag-comm-quick-grid { grid-template-columns: 1fr; }
  .ajag-comm-kpi-row { grid-template-columns: repeat(2, 1fr); margin: 0 -1.25rem; }
  .ajag-comm-feed-title { max-width: 220px; }
}
@media (max-width: 640px) {
  .ajag-membres-grid { grid-template-columns: 1fr; }
  .ajag-cal-cell { min-height: 4.5rem; padding: 0.25rem 0.1875rem; }
  .ajag-cal-event-title { font-size: 0.625rem; }
  .ajag-cal-field-row { grid-template-columns: 1fr 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  .ajag-comm-pulse-dot { animation: none; }
  .ajag-cal-modal-overlay, .ajag-cal-modal { animation: none !important; }
  .ajag-membres-hero-lottie { animation: none; }
  .ajag-totp-hero-lottie { animation: none; }
}

/* ═══════════════════════════════════════════════════════════════
   § 55. Wiki Flowchart — Parcours utilisateurs (SVG swimlane)
   ═══════════════════════════════════════════════════════════════ */

.wiki-flowchart {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  max-width: 100%;
  border: 1px solid #DBEAFE;
  border-radius: 8px;
  background: #F9FAFB;
  padding: 8px;
}
.wiki-flowchart svg {
  display: block;
  min-width: 560px;
  height: auto;
}

/* ═══════════════════════════════════════════════════════════════
   § 56. Hub Paramètres — Settings "Mission Control"
   ═══════════════════════════════════════════════════════════════ */

/* Bannière alertes */
.ajag-settings-alert-banner {
  display: flex;
  align-items: flex-start;
  gap: .875rem;
  padding: 1rem 1.25rem;
  background: linear-gradient(135deg, var(--ajag-danger-light), #fff8f8);
  border: 1px solid #FECACA;
  border-left: 4px solid var(--ajag-danger);
  border-radius: var(--ajag-radius);
  animation: ajag-fade-up var(--ajag-anim) ease both;
}

[data-ajag-theme="glass-navy"] .ajag-settings-alert-banner,
[data-theme-mode="dark"] .ajag-settings-alert-banner {
  background: rgba(239,68,68,.12);
  border-color: rgba(239,68,68,.3);
}

.ajag-settings-alert-icon {
  flex-shrink: 0;
  width: 36px; height: 36px;
  display: flex; align-items: center; justify-content: center;
  background: var(--ajag-danger-light);
  border-radius: var(--ajag-radius-sm);
  color: var(--ajag-danger);
}

.ajag-settings-alert-body { flex: 1; }

.ajag-settings-alert-title {
  font-size: .875rem;
  font-weight: 700;
  color: var(--ajag-text);
  margin: 0 0 .375rem;
  letter-spacing: -.01em;
}

.ajag-settings-alert-tags {
  display: flex;
  gap: .5rem;
  flex-wrap: wrap;
}

/* Grille des cartes */
.ajag-settings-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
}

@media (max-width: 1024px) { .ajag-settings-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px)  { .ajag-settings-grid { grid-template-columns: 1fr; } }

/* Card settings base */
.ajag-settings-card {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  background: var(--ajag-card-bg);
  border: 1.5px solid var(--ajag-border);
  border-radius: var(--ajag-radius-lg);
  padding: 1.5rem;
  text-decoration: none;
  cursor: pointer;
  position: relative;
  overflow: hidden;
  transition:
    box-shadow var(--ajag-anim) ease,
    transform var(--ajag-anim) ease,
    border-color var(--ajag-anim) ease;
  box-shadow: var(--ajag-shadow-sm);
  min-height: 160px;
}

.ajag-settings-card:nth-child(1) { animation: ajag-card-in var(--ajag-anim-slow)  50ms ease both; }
.ajag-settings-card:nth-child(2) { animation: ajag-card-in var(--ajag-anim-slow) 100ms ease both; }
.ajag-settings-card:nth-child(3) { animation: ajag-card-in var(--ajag-anim-slow) 150ms ease both; }
.ajag-settings-card:nth-child(4) { animation: ajag-card-in var(--ajag-anim-slow) 200ms ease both; }
.ajag-settings-card:nth-child(5) { animation: ajag-card-in var(--ajag-anim-slow) 250ms ease both; }

/* Trait couleur en haut */
.ajag-settings-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  border-radius: var(--ajag-radius-lg) var(--ajag-radius-lg) 0 0;
}

.ajag-settings-card:hover {
  box-shadow: var(--ajag-shadow-lg);
  transform: translateY(-3px);
}

.ajag-settings-card:focus-visible {
  outline: 2px solid var(--ajag-primary);
  outline-offset: 3px;
}

/* Header card */
.ajag-settings-card-header {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: 1.25rem;
}

/* Icône */
.ajag-settings-card-icon {
  width: 52px; height: 52px;
  border-radius: var(--ajag-radius);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
  color: white;
  transition: transform var(--ajag-anim) ease;
}

.ajag-settings-card:hover .ajag-settings-card-icon {
  transform: scale(1.08) rotate(-2deg);
}

/* Méta texte */
.ajag-settings-card-meta { flex: 1; }

.ajag-settings-card-title {
  font-size: 1rem;
  font-weight: 800;
  color: var(--ajag-text);
  margin: 0 0 .25rem;
  letter-spacing: -.02em;
}

.ajag-settings-card-desc {
  font-size: .8125rem;
  color: var(--ajag-text-muted);
  margin: 0;
  line-height: 1.5;
}

/* Footer card */
.ajag-settings-card-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 1rem;
  border-top: 1px solid var(--ajag-border-soft);
  margin-top: auto;
}

/* CTA flèche */
.ajag-settings-card-cta {
  display: inline-flex;
  align-items: center;
  gap: .375rem;
  font-size: .8125rem;
  font-weight: 700;
  color: var(--ajag-text-muted);
  transition: color var(--ajag-anim-fast) ease, gap var(--ajag-anim-fast) ease;
}

.ajag-settings-card:hover .ajag-settings-card-cta {
  color: var(--ajag-primary);
  gap: .625rem;
}

/* Variantes couleur par section */
.ajag-settings-card--security::before { background: linear-gradient(90deg, #1B4B9C, #2563EB); }
.ajag-settings-card--security .ajag-settings-card-icon {
  background: linear-gradient(135deg, #1B4B9C, #2563EB);
  box-shadow: 0 4px 12px rgba(27,75,156,.35);
}
.ajag-settings-card--security:hover { border-color: rgba(27,75,156,.35); }

.ajag-settings-card--stripe::before { background: linear-gradient(90deg, #22C55E, #16A34A); }
.ajag-settings-card--stripe .ajag-settings-card-icon {
  background: linear-gradient(135deg, #22C55E, #16A34A);
  box-shadow: 0 4px 12px rgba(34,197,94,.35);
}
.ajag-settings-card--stripe:hover { border-color: rgba(34,197,94,.35); }

.ajag-settings-card--communication::before { background: linear-gradient(90deg, #7C3AED, #6D28D9); }
.ajag-settings-card--communication .ajag-settings-card-icon {
  background: linear-gradient(135deg, #7C3AED, #6D28D9);
  box-shadow: 0 4px 12px rgba(124,58,237,.35);
}
.ajag-settings-card--communication:hover { border-color: rgba(124,58,237,.25); }

.ajag-settings-card--rbac::before { background: linear-gradient(90deg, #334155, #1E293B); }
.ajag-settings-card--rbac .ajag-settings-card-icon {
  background: linear-gradient(135deg, #475569, #334155);
  box-shadow: 0 4px 12px rgba(51,65,85,.35);
}
.ajag-settings-card--rbac:hover { border-color: rgba(51,65,85,.35); }

.ajag-settings-card--application::before { background: linear-gradient(90deg, #F5C200, #E9A900); }
.ajag-settings-card--application .ajag-settings-card-icon {
  background: linear-gradient(135deg, #F5C200, #E9A900);
  box-shadow: 0 4px 12px rgba(245,194,0,.4);
  color: #78350F;
}
.ajag-settings-card--application:hover { border-color: rgba(245,194,0,.4); }

/* Glass Navy overrides */
[data-ajag-theme="glass-navy"] .ajag-settings-card,
[data-theme-mode="dark"] .ajag-settings-card {
  background: rgba(255,255,255,.04);
  border-color: rgba(255,255,255,.08);
  backdrop-filter: blur(12px);
}

[data-ajag-theme="glass-navy"] .ajag-settings-card:hover,
[data-theme-mode="dark"] .ajag-settings-card:hover {
  background: rgba(255,255,255,.07);
}

[data-ajag-theme="glass-navy"] .ajag-settings-card-title,
[data-theme-mode="dark"] .ajag-settings-card-title {
  color: #F1F5F9;
}

/* ═══════════════════════════════════════════════════════════════
   § 57. Modal Paramètres — Glassmorphisme
   ═══════════════════════════════════════════════════════════════ */

/* Keyframes dédiées */
@keyframes ajag-pmodal-fade {
  from { opacity: 0; }
  to   { opacity: 1; }
}

@keyframes ajag-pmodal-slide {
  from { opacity: 0; transform: translateY(20px) scale(0.97); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}

/* Transitions Alpine */
.ajag-pmodal-backdrop-enter { transition: opacity 220ms ease; }
.ajag-pmodal-backdrop-from  { opacity: 0; }
.ajag-pmodal-backdrop-to    { opacity: 1; }

.ajag-pmodal-panel-enter { transition: opacity 260ms ease, transform 260ms cubic-bezier(.22,.68,0,1.2); }
.ajag-pmodal-panel-from  { opacity: 0; transform: translateY(24px) scale(0.96); }
.ajag-pmodal-panel-to    { opacity: 1; transform: translateY(0) scale(1); }

/* Backdrop */
.ajag-pmodal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 9998;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
  background: rgba(15, 23, 42, 0.28);
  backdrop-filter: blur(6px) saturate(130%);
  -webkit-backdrop-filter: blur(6px) saturate(130%);
}

/* Panneau glassmorphique */
.ajag-pmodal-panel {
  position: relative;
  width: 100%;
  max-width: 980px;
  height: min(90vh, 100%);  /* hauteur fixée pour que overflow-y fonctionne */
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border-radius: 24px;

  /* Glass effect */
  background: rgba(255, 255, 255, 0.82);
  backdrop-filter: blur(32px) saturate(180%);
  -webkit-backdrop-filter: blur(32px) saturate(180%);
  border: 1px solid rgba(255, 255, 255, 0.6);
  box-shadow:
    0 0 0 1px rgba(27,75,156,.08),
    0 24px 64px rgba(13,27,62,.25),
    0 8px 24px rgba(13,27,62,.12),
    inset 0 1px 0 rgba(255,255,255,.9);
}

/* Grain overlay pour la profondeur */
.ajag-pmodal-panel::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 24px;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.03'/%3E%3C/svg%3E");
  pointer-events: none;
  z-index: 0;
}

/* Glass Navy overrides */
[data-ajag-theme="glass-navy"] .ajag-pmodal-backdrop,
[data-theme-mode="dark"] .ajag-pmodal-backdrop {
  background: rgba(8, 16, 40, 0.4);
}

[data-ajag-theme="glass-navy"] .ajag-pmodal-panel,
[data-theme-mode="dark"] .ajag-pmodal-panel {
  background: rgba(19, 32, 68, 0.75);
  border-color: rgba(255,255,255,.12);
  box-shadow:
    0 0 0 1px rgba(245,194,0,.08),
    0 24px 64px rgba(0,0,0,.5),
    inset 0 1px 0 rgba(255,255,255,.08);
}

/* Header */
.ajag-pmodal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.5rem 1.75rem 1.25rem;
  background: linear-gradient(135deg,
    rgba(27,75,156,.07) 0%,
    rgba(245,194,0,.04) 100%);
  border-bottom: 1px solid rgba(27,75,156,.1);
  position: relative;
  z-index: 1;
  flex-shrink: 0;
}

[data-ajag-theme="glass-navy"] .ajag-pmodal-header,
[data-theme-mode="dark"] .ajag-pmodal-header {
  background: linear-gradient(135deg,
    rgba(27,75,156,.2) 0%,
    rgba(245,194,0,.06) 100%);
  border-bottom-color: rgba(255,255,255,.06);
}

.ajag-pmodal-header-left {
  display: flex;
  align-items: center;
  gap: .875rem;
}

.ajag-pmodal-header-icon {
  width: 48px; height: 48px;
  background: linear-gradient(135deg, var(--ajag-primary), #2563EB);
  border-radius: 14px;
  display: flex; align-items: center; justify-content: center;
  color: white;
  flex-shrink: 0;
  box-shadow: 0 4px 12px rgba(27,75,156,.35);
}

.ajag-pmodal-title {
  font-size: 1.1875rem;
  font-weight: 800;
  color: var(--ajag-text);
  margin: 0;
  letter-spacing: -.025em;
}

[data-ajag-theme="glass-navy"] .ajag-pmodal-title,
[data-theme-mode="dark"] .ajag-pmodal-title {
  color: #F1F5F9;
}

.ajag-pmodal-subtitle {
  font-size: .8125rem;
  color: var(--ajag-text-muted);
  margin: 3px 0 0;
  font-weight: 500;
}

.ajag-pmodal-close {
  width: 36px; height: 36px;
  display: flex; align-items: center; justify-content: center;
  border: 1px solid var(--ajag-border);
  border-radius: 10px;
  background: var(--ajag-card-bg);
  color: var(--ajag-text-muted);
  cursor: pointer;
  transition:
    background var(--ajag-anim-fast) ease,
    color var(--ajag-anim-fast) ease,
    border-color var(--ajag-anim-fast) ease;
  flex-shrink: 0;
}

.ajag-pmodal-close:hover {
  background: var(--ajag-danger-light);
  color: var(--ajag-danger);
  border-color: rgba(239,68,68,.3);
}

.ajag-pmodal-close:focus-visible {
  outline: 2px solid var(--ajag-primary);
  outline-offset: 2px;
}

/* Corps de la modal */
.ajag-pmodal-body {
  padding: 1.75rem 2rem 2rem;
  overflow-y: auto;
  overflow-x: hidden;
  flex: 1 1 0;
  min-height: 0;       /* critique pour flex + overflow-y scroll */
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

.ajag-pmodal-body::-webkit-scrollbar { width: 4px; }
.ajag-pmodal-body::-webkit-scrollbar-track { background: transparent; }
.ajag-pmodal-body::-webkit-scrollbar-thumb {
  background: var(--ajag-border);
  border-radius: 4px;
}

/* Bannière alertes dans modal */
.ajag-pmodal-alert {
  background: rgba(239, 68, 68, 0.08) !important;
  border-color: rgba(239, 68, 68, 0.25) !important;
}

/* Grille dans la modal */
.ajag-pmodal-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.125rem;
}

@media (max-width: 720px) { .ajag-pmodal-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .ajag-pmodal-grid { grid-template-columns: 1fr; } }

/* Cards dans la modal — typographie adaptée */
.ajag-pmodal-card {
  min-height: 152px;
  padding: 1.375rem;
  gap: .5rem;
}

.ajag-pmodal-card .ajag-settings-card-icon {
  width: 48px; height: 48px;
  border-radius: 14px;
}

.ajag-pmodal-card .ajag-settings-card-header {
  gap: .875rem;
}

.ajag-pmodal-card .ajag-settings-card-title {
  font-size: 1.125rem;
  letter-spacing: -.025em;
}

.ajag-pmodal-card .ajag-settings-card-desc {
  font-size: .9375rem;
  line-height: 1.4;
  color: var(--ajag-text-soft);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.ajag-pmodal-card .ajag-settings-card-cta {
  font-size: .9rem;
}

.ajag-pmodal-card .ajag-settings-card-footer {
  padding-top: .875rem;
  flex-wrap: nowrap;
  gap: .5rem;
}

.ajag-pmodal-card .ajag-badge {
  font-size: .75rem;
  padding: 4px 10px;
  white-space: nowrap;
  flex-shrink: 0;
}

/* Glass dans la modal (toujours, quel que soit le thème) */
.ajag-pmodal-card {
  background: rgba(255,255,255,.6) !important;
  border-color: rgba(255,255,255,.7) !important;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.ajag-pmodal-card:hover {
  background: rgba(255,255,255,.85) !important;
  box-shadow: 0 8px 24px rgba(27,75,156,.14) !important;
}

[data-ajag-theme="glass-navy"] .ajag-pmodal-card,
[data-theme-mode="dark"] .ajag-pmodal-card {
  background: rgba(255,255,255,.05) !important;
  border-color: rgba(255,255,255,.1) !important;
}

[data-ajag-theme="glass-navy"] .ajag-pmodal-card:hover,
[data-theme-mode="dark"] .ajag-pmodal-card:hover {
  background: rgba(255,255,255,.09) !important;
}

/* Card Préférences */
.ajag-settings-card--prefs::before { background: linear-gradient(90deg, #EC4899, #DB2777); }
.ajag-settings-card--prefs .ajag-settings-card-icon {
  background: linear-gradient(135deg, #EC4899, #DB2777);
  box-shadow: 0 4px 12px rgba(236,72,153,.35);
}
.ajag-settings-card--prefs:hover { border-color: rgba(236,72,153,.35); }
.ajag-settings-card--prefs { cursor: pointer; text-align: left; }

/* Card active (préfs ouvertes) */
.ajag-pmodal-card--active {
  border-color: rgba(236,72,153,.4) !important;
  background: rgba(236,72,153,.04) !important;
}

/* Transitions section préférences dépliable */
.ajag-prefs-expand-enter {
  transition: opacity 200ms ease, transform 200ms ease;
}
.ajag-prefs-expand-from {
  opacity: 0;
  transform: translateY(-6px);
}
.ajag-prefs-expand-to {
  opacity: 1;
  transform: translateY(0);
}

/* Section préférences dépliable */
.ajag-pmodal-prefs-section {
  border: 1px solid var(--ajag-border);
  border-radius: var(--ajag-radius-lg);
  overflow: hidden;
  background: var(--ajag-bg);
}

[data-ajag-theme="glass-navy"] .ajag-pmodal-prefs-section,
[data-theme-mode="dark"] .ajag-pmodal-prefs-section {
  background: rgba(255,255,255,.03);
  border-color: rgba(255,255,255,.08);
}

.ajag-pmodal-prefs-header {
  display: flex;
  align-items: center;
  gap: .625rem;
  padding: .875rem 1.25rem;
  background: linear-gradient(135deg, rgba(236,72,153,.06), rgba(219,39,119,.03));
  border-bottom: 1px solid var(--ajag-border-soft);
  font-size: .875rem;
  font-weight: 700;
  color: var(--ajag-text);
  letter-spacing: -.01em;
}

.ajag-pmodal-prefs-body {
  padding: 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 1.125rem;
}

.ajag-pmodal-prefs-row2 {
  display: flex;
  gap: 1.5rem;
  align-items: flex-start;
}

.ajag-pmodal-prefs-actions {
  display: flex;
  justify-content: flex-end;
  gap: .75rem;
  padding-top: .75rem;
  border-top: 1px solid var(--ajag-border-soft);
}

/* Lien dans le menu avatar — bouton paramètres */
.ajag-params-menu-link {
  display: flex;
  align-items: center;
  gap: .625rem;
  width: 100%;
  padding: .5rem .75rem;
  font-size: .875rem;
  font-weight: 500;
  color: var(--ajag-text-soft);
  background: none;
  border: none;
  cursor: pointer;
  border-radius: var(--ajag-radius-sm);
  transition: background-color var(--ajag-anim-fast) ease, color var(--ajag-anim-fast) ease;
  text-align: left;
}

.ajag-params-menu-link:hover {
  background-color: var(--ajag-primary-light);
  color: var(--ajag-primary);
}
