/* ============================================
   VARIABLES & DESIGN SYSTEM
   ============================================ */
:root {
  /* Couleurs */
  --primary: #5F8FE0;
  --primary-dark: #3B6FCC;
  --primary-light: #EEF3FC;
  --success: #16A34A;
  --danger: #DC2626;
  --warning: #D97706;

  /* Neutres */
  --bg: #EEF2FB;
  --surface: #FFFFFF;
  --border: #E2E8F0;
  --text: #1E293B;
  --text-muted: #64748B;
  --text-light: #94A3B8;

  /* Ombres */
  --shadow-sm: 0 1px 3px rgba(0,0,0,0.08), 0 1px 2px rgba(0,0,0,0.04);
  --shadow: 0 4px 6px rgba(0,0,0,0.07), 0 2px 4px rgba(0,0,0,0.05);
  --shadow-md: 0 10px 15px rgba(0,0,0,0.08), 0 4px 6px rgba(0,0,0,0.04);
  --shadow-lg: 0 20px 25px rgba(0,0,0,0.10), 0 8px 10px rgba(0,0,0,0.04);

  /* Rayons */
  --radius-sm: 8px;
  --radius: 12px;
  --radius-lg: 16px;

  /* Police */
  --font: 'Nunito', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

/* ============================================
   BASE
   ============================================ */
*, *::before, *::after { box-sizing: border-box; }

body {
  font-family: var(--font) !important;
  background: var(--bg) !important;
  color: var(--text) !important;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Fond grisé général */
.main-content, #main-content, .content-area {
  background: var(--bg) !important;
}

/* Cartes avec relief */
.card, .module-card, .form-card, .stat-card, .info-card {
  background: var(--surface) !important;
  border-radius: var(--radius) !important;
  box-shadow: var(--shadow) !important;
  border: 1px solid var(--border) !important;
}

/* Navigation latérale */
.sidebar, .nav-sidebar, #sidebar {
  box-shadow: 4px 0 24px rgba(95,143,224,0.10), 2px 0 8px rgba(0,0,0,0.04) !important;
}

/* Boutons */
.btn, button.btn {
  font-family: var(--font) !important;
  font-weight: 500 !important;
  letter-spacing: 0.01em !important;
  transition: all 0.15s ease !important;
}
.btn:hover { transform: translateY(-1px); box-shadow: var(--shadow-md) !important; }
.btn:active { transform: translateY(0); }

/* Inputs */
input, select, textarea {
  font-family: var(--font) !important;
  border-radius: var(--radius-sm) !important;
  transition: border-color 0.15s, box-shadow 0.15s !important;
}
input:focus, select:focus, textarea:focus {
  outline: none !important;
  border-color: var(--primary) !important;
  box-shadow: 0 0 0 3px rgba(95,143,224,0.15) !important;
}

/* Titres - garder la couleur originale d'Intendia */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font) !important;
  font-weight: 600 !important;
}

/* ============================================
   INTENDIA V2 - Feuille de style principale
   ============================================ */

/* === BLOC 1 - Styles globaux === */

    :root {
      --color-bg: #F7F8FC;
      --color-sidebar-bg: #FFFFFF;
      --color-primary: #5F8FE0;
      --color-secondary: #B69AF8;
      --color-text: #1F2933;
      --color-muted: #6B7280;
      --color-border: #E0E4F2;
      --color-hover: #EDF2FF;
      --color-active-bg: #5F8FE0;
      --color-active-text: #FFFFFF;
      --shadow-soft: 0 10px 25px rgba(15, 23, 42, 0.08);
      --radius-lg: 14px;
    }

    * {
      box-sizing: border-box;
      margin: 0;
      padding: 0;
      font-family: "Avenir", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
    }

    body {
      background: radial-gradient(circle at top left, #F0F3FF, #F7F8FC 50%, #FDFBFF);
      color: var(--color-text);
      min-height: 100vh;
      font-size: 15px;
    }

    /* PAGE DE CONNEXION */
    .login-container {
      display: flex;
      align-items: center;
      justify-content: center;
      min-height: 100vh;
      padding: 20px;
    }

    .login-box {
      background: white;
      border-radius: var(--radius-lg);
      box-shadow: 0 20px 60px rgba(95, 143, 224, 0.15);
      padding: 50px 40px;
      max-width: 420px;
      width: 100%;
      text-align: center;
    }
    
    /* Formulaire inscription plus large */
    #register-page .login-box {
      max-width: 650px;
      padding: 40px 50px;
    }

    .login-logo {
      font-size: 100px;
      margin-bottom: 0px;
      animation: float 3s ease-in-out infinite;
    }

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

    .login-title {
      font-size: 28px;
      font-weight: 700;
      color: var(--color-primary);
      margin-bottom: 8px;
      margin-top: -5px;
    }

    .login-subtitle {
      color: var(--color-muted);
      font-size: 14px;
      margin-bottom: 35px;
    }

    .login-form {
      display: flex;
      flex-direction: column;
      gap: 18px;
    }

    .form-field-login {
      display: flex;
      flex-direction: column;
      gap: 6px;
    }

    .form-label-login {
      font-size: 14px;
      font-weight: 600;
      color: #374151;
    }

    .login-input {
      padding: 14px 18px;
      border: 2px solid #E0E4F2;
      border-radius: var(--radius);
      font-size: 15px;
      transition: all 0.3s;
      outline: none;
    }

    .login-input:focus {
      border-color: var(--color-primary);
      box-shadow: 0 0 0 4px rgba(95, 143, 224, 0.1);
    }

    .login-button {
      padding: 14px;
      background: linear-gradient(135deg, #5F8FE0, #7B68EE);
      color: white;
      border: none;
      border-radius: var(--radius);
      font-size: 16px;
      font-weight: 600;
      cursor: pointer;
      transition: all 0.3s;
      margin-top: 10px;
    }

    .login-button:hover {
      transform: translateY(-2px);
      box-shadow: 0 10px 25px rgba(95, 143, 224, 0.3);
    }

    .login-link {
      color: var(--color-primary);
      text-decoration: none;
      font-size: 14px;
      margin-top: 15px;
      display: inline-block;
      cursor: pointer;
    }

    .login-link:hover {
      text-decoration: underline;
    }

    .login-error {
      background: #FEE;
      color: #C00;
      padding: 12px;
      border-radius: var(--radius-sm);
      font-size: 14px;
      margin-bottom: 15px;
      display: none;
    }

    /* Champ mot de passe avec œil */
    .password-field {
      position: relative;
      width: 100%;
    }

    .password-field input {
      width: 100%;
      padding-right: 45px;
    }

    .toggle-password {
      position: absolute;
      right: 14px;
      top: 50%;
      transform: translateY(-50%);
      cursor: pointer;
      padding: 4px;
      display: flex;
      align-items: center;
      justify-content: center;
      color: #9CA3AF;
      transition: color 0.2s;
      user-select: none;
    }

    .toggle-password:hover {
      color: #5F8FE0;
    }

    .eye-icon {
      width: 20px;
      height: 20px;
      stroke-width: 2;
    }

    .toggle-password.active .eye-icon {
      color: #5F8FE0;
    }

    .forgot-password-link {
      color: var(--color-primary);
      text-decoration: none;
      font-size: 13px;
      margin-top: -8px;
      margin-bottom: 8px;
      display: inline-block;
      cursor: pointer;
      text-align: right;
      width: 100%;
    }

    .forgot-password-link:hover {
      text-decoration: underline;
    }

    .app-shell {
      display: flex;
      min-height: 100vh;
    }

    /* SIDEBAR */

    .sidebar {
      width: 240px;
      background: linear-gradient(180deg, #FFFFFF 0%, #F5F3FF 100%);
      border-right: none;
      padding: 18px 16px;
      display: flex;
      flex-direction: column;
      gap: 24px;
      transition: transform 0.3s ease;
      box-shadow: 4px 0 24px rgba(95, 143, 224, 0.10), 2px 0 8px rgba(0,0,0,0.04);
      position: relative;
      z-index: 10;
    }
    
    /* Bouton hamburger (masqué sur desktop) */
    .menu-toggle {
      display: none;
      position: fixed;
      top: 15px;
      left: 15px;
      z-index: 1000;
      width: 45px;
      height: 45px;
      background: var(--color-primary);
      border: none;
      border-radius: var(--radius);
      cursor: pointer;
      box-shadow: 0 4px 12px rgba(95, 143, 224, 0.3);
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 5px;
    }
    
    .menu-toggle span {
      width: 22px;
      height: 2px;
      background: white;
      border-radius: 2px;
      transition: all 0.3s;
    }
    
    .menu-toggle.active span:nth-child(1) {
      transform: rotate(45deg) translate(6px, 6px);
    }
    
    .menu-toggle.active span:nth-child(2) {
      opacity: 0;
    }
    
    .menu-toggle.active span:nth-child(3) {
      transform: rotate(-45deg) translate(6px, -6px);
    }

    .branding {
      display: flex;
      align-items: center;
      gap: 10px;
    }

    .logo-box {
      width: 40px;
      height: 40px;
      border-radius: 999px;
      background: transparent;
      display: flex;
      align-items: center;
      justify-content: center;
      box-shadow: none;
      font-size: 22px;
    }

    .branding-text {
      display: flex;
      flex-direction: column;
      line-height: 1.1;
    }

    .branding-title {
      font-weight: 700;
      font-size: 17px;
      letter-spacing: 0.04em;
    }

    .branding-subtitle {
      font-size: 12px;
      text-transform: uppercase;
      color: var(--color-muted);
      letter-spacing: 0.1em;
    }

    .nav-list {
      list-style: none;
      display: flex;
      flex-direction: column;
      gap: 4px;
    }

    .nav-item {
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 8px 10px;
      border-radius: 999px;
      cursor: pointer;
      font-size: 14px;
      color: var(--color-text);
      transition: background 0.15s ease, color 0.15s ease, transform 0.1s ease;
    }

    .nav-item:hover {
      background: var(--color-hover);
      transform: translateX(1px);
    }

    .nav-item.active {
      background: linear-gradient(90deg, rgba(95,143,224,0.15), rgba(182,154,248,0.10));
      color: var(--color-primary);
      box-shadow: none;
      position: relative;
      font-weight: 700;
    }

    .nav-item.active::before {
      content: '';
      position: absolute;
      left: -16px;
      top: 50%;
      transform: translateY(-50%);
      width: 4px;
      height: 60%;
      background: linear-gradient(180deg, var(--color-primary), var(--color-secondary));
      border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
    }

    .nav-icon {
      width: 28px;
      height: 28px;
      display: flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
      background: rgba(95, 143, 224, 0.08);
      border-radius: var(--radius-sm);
      transition: all 0.2s ease;
    }

    .nav-item:hover .nav-icon {
      background: rgba(95, 143, 224, 0.15);
    }

    .nav-item.active .nav-icon {
      background: rgba(95, 143, 224, 0.2);
    }

    .nav-icon svg {
      width: 18px;
      height: 18px;
      stroke: var(--color-primary);
      fill: none;
      stroke-width: 2;
      stroke-linecap: round;
      stroke-linejoin: round;
    }

    .nav-item.active .nav-icon svg {
      stroke: var(--color-active-text);
    }

    .nav-label {
      flex: 1;
      white-space: nowrap;
      text-overflow: ellipsis;
      overflow: hidden;
    }

    .sidebar-footer { /* overridden */ }

    .pill {
      display: inline-block;
      padding: 2px 8px;
      border-radius: 999px;
      background: rgba(95, 143, 224, 0.12);
      font-size: 10px;
      margin-top: 4px;
      color: #4B5BB5;
    }

    /* MAIN */

    .main {
      flex: 1;
      padding: 18px 18px 24px;
      display: flex;
      flex-direction: column;
      gap: 14px;
    }

    .top-bar {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
    }

    .page-title h1 {
      font-size: 23px;
      font-weight: 700;
      color: var(--color-secondary);
    }

    .top-bar-right {
      display: flex;
      align-items: center;
      gap: 8px;
      font-size: 13px;
      color: var(--color-muted);
    }

    .user-chip {
      display: flex;
      align-items: center;
      gap: 8px;
      padding: 6px 14px;
      border-radius: 999px;
      background: rgba(182, 154, 248, 0.12);
      border: 1px solid rgba(182, 154, 248, 0.3);
      font-size: 14px;
      font-weight: 500;
    }

    .user-avatar {
      width: 32px;
      height: 32px;
      border-radius: 999px;
      background: linear-gradient(135deg, var(--color-primary), var(--color-secondary));
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 13px;
      color: white;
      font-weight: 600;
    }

    /* SOUS-MENUS */

    .submenu-bar {
      background: #5F8FE0;
      border-radius: var(--radius);
      padding: 10px 16px;
      display: flex;
      align-items: center;
      flex-wrap: wrap;
      gap: 8px;
      margin-bottom: 12px;
      min-height: 48px;
      box-shadow: 0 2px 8px rgba(95, 143, 224, 0.2);
    }

    .submenu-bar:empty {
      display: none;
    }

    .submenu-item {
      position: relative;
      padding: 8px 20px;
      font-size: 15px;
      white-space: nowrap;
      cursor: pointer;
      color: rgba(255, 255, 255, 0.85);
      background: transparent;
      border: none;
      transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
      font-weight: 500;
      border-radius: var(--radius-sm);
    }

    .submenu-item:hover {
      color: #FFFFFF;
      background: rgba(255, 255, 255, 0.1);
    }

    .submenu-item.active {
      color: #4B3D99;
      background: transparent;
      font-weight: 700;
      font-size: 17px;
    }

    .submenu-divider {
      width: 1px;
      height: 24px;
      background: rgba(255, 255, 255, 0.3);
      flex-shrink: 0;
      margin: 0 4px;
    }

    /* CONTENT */

    .content-card {
      flex: 1;
      background: #FFFFFF;
      border-radius: var(--radius);
      box-shadow: var(--shadow-soft);
      border: 1px solid rgba(224, 228, 242, 0.9);
      padding: 18px;
      display: flex;
      flex-direction: column;
      gap: 10px;
      margin-top: 0;
    }

    /* ANIMATIONS DE NAVIGATION */
    @keyframes fadeInUp {
      from {
        opacity: 0;
        transform: translateY(20px);
      }
      to {
        opacity: 1;
        transform: translateY(0);
      }
    }

    @keyframes fadeIn {
      from {
        opacity: 0;
      }
      to {
        opacity: 1;
      }
    }

    @keyframes slideInRight {
      from {
        opacity: 0;
        transform: translateX(30px);
      }
      to {
        opacity: 1;
        transform: translateX(0);
      }
    }

    .content-body {
      animation: fadeInUp 0.4s ease-out;
    }

    .page-transitioning .content-body {
      opacity: 0;
      transform: translateY(10px);
      transition: opacity 0.2s ease, transform 0.2s ease;
      overflow: hidden;
      margin-top: 0;
    }

    .content-body {
      font-size: 14px;
      color: var(--color-text);
      overflow: auto;
      display: flex;
      flex-direction: column;
      gap: 10px;
      padding-top: 0;
      margin-top: 0;
    }

    .placeholder-block {
      border-radius: var(--radius);
      border: 1px dashed rgba(192, 196, 220, 0.9);
      padding: 12px;
      background: rgba(248, 249, 255, 0.8);
      display: flex;
      flex-direction: column;
      gap: 6px;
      margin-top: 18px;
    }

    .placeholder-title {
      font-weight: 600;
      font-size: 14px;
      color: #4B5BB5;
    }

    .placeholder-text {
      font-size: 13px;
      color: var(--color-muted);
    }

    .placeholder-taglist {
      display: flex;
      flex-wrap: wrap;
      gap: 6px;
      margin-top: 4px;
    }

    .tag {
      padding: 2px 8px;
      font-size: 11px;
      border-radius: 999px;
      background: rgba(95, 143, 224, 0.08);
      color: #4B5BB5;
    }

    /* DASHBOARD */

    .content-body.dashboard {
      display: flex;
      flex-direction: column;
      gap: 18px;
      height: 100%;
    }

    .welcome-block {
      padding: 20px 18px 10px;
      border-radius: var(--radius-lg);
      background: linear-gradient(
        110deg,
        rgba(95, 143, 224, 0.08),
        rgba(182, 154, 248, 0.08)
      );
      display: flex;
      flex-direction: column;
      gap: 10px;
      min-height: 140px;
      animation: fadeIn 0.5s ease-out;
    }

    .welcome-title {
      animation: slideInRight 0.6s ease-out;
    }

    .welcome-subtitle {
      animation: slideInRight 0.7s ease-out;
    }

    .welcome-quote-main {
      animation: fadeInUp 0.8s ease-out;
    }

    .welcome-topline {
      display: flex;
      align-items: flex-end;
      justify-content: space-between;
      gap: 10px;
    }

    .welcome-title {
      font-size: 34px;
      font-weight: 800;
      flex: 1;
    }

    .welcome-subtitle {
      font-size: 16px;
      font-weight: 500;
      color: #4B5BB5;
      text-align: right;
      white-space: nowrap;
    }

    .welcome-annee {
      font-size: 13px;
      font-weight: 600;
      color: #5F8FE0;
      text-align: right;
      white-space: nowrap;
      margin-top: 4px;
    }

    .welcome-quote-main {
      font-size: 16px;
      color: var(--color-muted);
      font-style: italic;
      max-width: 900px;
    }

    .dashboard-grid {
      display: grid;
      grid-template-columns: 1fr 1fr 1fr;
      grid-template-rows: 1fr 1fr 1fr;
      gap: 14px;
      margin-top: 4px;
      height: 600px;
      position: relative;
    }

    .dash-card {
      border-radius: var(--radius-lg);
      border: 1px solid rgba(224, 228, 242, 0.9);
      background: rgba(255, 255, 255, 0.96);
      padding: 14px 14px;
      display: flex;
      flex-direction: column;
      gap: 8px;
      transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
      animation: fadeInUp 0.5s ease-out backwards;
      cursor: pointer;
      overflow-y: auto;
      position: relative;
      z-index: 1;
    }

    /* AUJOURD'HUI : Grand carré */
    .dash-card:nth-child(1) { 
      grid-column: 1;
      grid-row: 1 / 3;
      animation-delay: 0.1s;
      background: linear-gradient(110deg, rgba(95, 143, 224, 0.08), rgba(182, 154, 248, 0.08));
      border: 1px solid rgba(95, 143, 224, 0.15);
    }
    
    .dash-card:nth-child(1) > * {
      position: relative;
      z-index: 1;
    }
    
    /* SEMAINE : Rectangle haut droite */
    .dash-card:nth-child(2) { 
      grid-column: 1;
      grid-row: 3;
      animation-delay: 0.2s;
      background: linear-gradient(110deg, rgba(95, 143, 224, 0.08), rgba(182, 154, 248, 0.08));
      border: 1px solid rgba(95, 143, 224, 0.15);
    }
    
    /* RETARD : Rectangle bas droite */
    .dash-card:nth-child(3) { 
      grid-column: 2;
      grid-row: 3;
      animation-delay: 0.3s;
      background: linear-gradient(110deg, rgba(95, 143, 224, 0.08), rgba(182, 154, 248, 0.08));
      border: 1px solid rgba(95, 143, 224, 0.15);
    }
    
    /* STOCKS */
    .dash-card:nth-child(4) { 
      grid-column: 3;
      grid-row: 3;
      animation-delay: 0.4s;
      background: linear-gradient(110deg, rgba(95, 143, 224, 0.08), rgba(182, 154, 248, 0.08));
      border: 1px solid rgba(95, 143, 224, 0.15);
    }
    
    /* SUBVENTIONS */
    .dash-card:nth-child(5) { 
      grid-column: 2 / 4;
      grid-row: 1;
      animation-delay: 0.5s;
      background: linear-gradient(110deg, rgba(95, 143, 224, 0.08), rgba(182, 154, 248, 0.08));
      border: 1px solid rgba(95, 143, 224, 0.15);
    }
    
    /* CONTRATS */
    .dash-card:nth-child(6) { 
      grid-column: 2 / 4;
      grid-row: 2;
      animation-delay: 0.6s;
      background: linear-gradient(110deg, rgba(95, 143, 224, 0.08), rgba(182, 154, 248, 0.08));
      border: 1px solid rgba(95, 143, 224, 0.15);
    }

    .dash-card:hover {
      transform: translateY(-4px);
      box-shadow: 0 12px 28px rgba(95, 143, 224, 0.15);
      border-color: var(--color-primary);
      background: rgba(255, 255, 255, 1);
    }

    .dash-card-header {
      display: flex;
      align-items: center;
      gap: 8px;
      font-size: 14px;
      font-weight: 600;
    }

    .dash-card-icon {
      width: 28px;
      height: 28px;
      border-radius: 999px;
      display: flex;
      align-items: center;
      justify-content: center;
      background: rgba(95, 143, 224, 0.08);
      font-size: 16px;
    }

    .dash-card-body {
      font-size: 12px;
      color: var(--color-muted);
      margin-top: 4px;
    }

    .dash-badge {
      display: inline-block;
      font-size: 10px;
      padding: 2px 6px;
      border-radius: 999px;
      background: rgba(244, 63, 94, 0.08);
      color: #B91C1C;
      border: 1px solid rgba(248, 113, 113, 0.5);
      margin-top: 6px;
    }

    /* LOADER POUR TRANSITIONS */
    .page-loader {
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      display: none;
      align-items: center;
      justify-content: center;
      z-index: 10;
    }

    .page-loader.active {
      display: flex;
    }

    .spinner {
      width: 40px;
      height: 40px;
      border: 3px solid rgba(95, 143, 224, 0.2);
      border-top-color: var(--color-primary);
      border-radius: 50%;
      animation: spin 0.8s linear infinite;
    }

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

    /* ANIMATIONS POUR LES BLOCS */
    .placeholder-block,
    .config-block {
      animation: fadeInUp 0.4s ease-out;
    }

    .welcome-block {
      animation: fadeIn 0.5s ease-out;
    }

    /* FORMULAIRES CONFIGURATION */

    .config-block {
      border-radius: var(--radius);
      border: 1px solid rgba(192, 196, 220, 0.9);
      padding: 12px;
      background: rgba(248, 249, 255, 0.8);
      display: flex;
      flex-direction: column;
      gap: 10px;
      margin-top: 10px;
    }

    .config-block {
      flex: 1;
      min-height: calc(100vh - 250px);
      overflow-y: auto;
    }

    .config-table-wrapper {
      flex: 1;
      overflow-y: auto;
    }
    .config-list {
      flex: 1;
    }
    .config-form {
      display: flex;
      flex-direction: column;
      gap: 8px;
    }

    .config-line-editor {
      display: flex;
      flex-wrap: wrap;
      align-items: flex-end;
      gap: 8px;
    }

    .config-line-field {
      display: flex;
      flex-direction: column;
      gap: 3px;
      min-width: 130px;
      flex: 1;
    }

    .config-label {
      font-size: 12px;
      color: var(--color-muted);
    }

    .config-input,
    .config-select {
      border-radius: var(--radius-sm);
      border: 1px solid rgba(203, 213, 225, 0.9);
      padding: 6px 8px;
      font-size: 14px;
      background: #FFFFFF;
    }

    .config-checkbox-field {
      display: flex;
      align-items: center;
      gap: 6px;
      font-size: 12px;
      color: var(--color-muted);
      min-width: 150px;
    }

    .config-line-actions {
      display: flex;
      flex-direction: row;
      gap: 6px;
      margin-left: auto;
    }

    .config-list {
      margin-top: 0;
      border-top: 1px solid rgba(203, 213, 225, 0.9);
    }

    .config-table {
      width: 100%;
      border-collapse: collapse;
      font-size: 13px;
      table-layout: fixed;
    }

    .config-table th,
    .config-table td {
      padding: 10px 14px;
      border-bottom: 1px solid rgba(226, 232, 240, 0.9);
      text-align: left;
      vertical-align: middle;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }

    /* Colonne Actions - fixe à droite */
    .config-table th:last-child,
    .config-table td:last-child {
      width: 220px;
      text-align: right;
      white-space: nowrap;
    }
    
    /* Colonnes checkboxes et petits champs */
    .config-table th:has(input[type="checkbox"]),
    .config-table td:has(input[type="checkbox"]) {
      width: 50px;
      text-align: center;
    }

    .config-table th {
      font-size: 12px;
      color: var(--color-muted);
      font-weight: 600;
      background: rgba(248, 250, 252, 0.9);
      white-space: nowrap;
    }

    .config-table tr:hover {
      background: rgba(239, 246, 255, 0.6);
      transition: all 0.2s ease;
    }

    .config-table tbody tr {
      animation: fadeIn 0.3s ease-out backwards;
      transition: all 0.2s ease;
    }

    .config-table tbody tr:nth-child(1) { animation-delay: 0.05s; }
    .config-table tbody tr:nth-child(2) { animation-delay: 0.1s; }
    .config-table tbody tr:nth-child(3) { animation-delay: 0.15s; }
    .config-table tbody tr:nth-child(4) { animation-delay: 0.2s; }
    .config-table tbody tr:nth-child(5) { animation-delay: 0.25s; }

    .config-table-actions {
      display: flex;
      gap: 6px;
      justify-content: flex-end;
      align-items: center;
    }

    .config-note {
      font-size: 11px;
      color: var(--color-muted);
      font-style: italic;
      margin-top: 4px;
    }

    /* BOUTONS */

    .btn {
      border-radius: var(--radius-sm);
      border: 1px solid rgba(203, 213, 225, 0.9);
      padding: 6px 12px;
      font-size: 12px;
      font-weight: 500;
      background: #FFFFFF;
      cursor: pointer;
      text-align: center;
      white-space: nowrap;
      transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
    }

    .btn:hover {
      background: var(--color-hover);
      transform: translateY(-1px);
      box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    }

    .btn:active {
      transform: translateY(0);
    }

    .btn-primary {
      background: var(--color-primary);
      color: #FFFFFF;
      border-color: var(--color-primary);
    }

    .btn-primary:hover {
      background: #4c76c8;
      box-shadow: 0 4px 12px rgba(95, 143, 224, 0.3);
    }

    .btn-danger {
      background: #FEF2F2;
      color: #DC2626;
      border-color: #FECACA;
    }

    .btn-danger:hover {
      background: #FEE2E2;
      box-shadow: 0 2px 8px rgba(220, 38, 38, 0.15);
    }

    .btn-ghost {
      background: #F8FAFC;
      border-color: #E2E8F0;
      color: #64748B;
    }

    .btn-ghost:hover {
      background: #F1F5F9;
      border-color: #CBD5E1;
      color: #475569;
    }

    /* ═══════════════════════════════════════════════════════════
       DESIGN SYSTEM - BOUTONS STANDARDISÉS
       ═══════════════════════════════════════════════════════════ */
    
    /* Bouton Supprimer - Rouge */


    /* Bouton Ajouter - Primaire */
    .btn-add {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      padding: 10px 18px;
      background: var(--color-primary);
      color: white;
      border: none;
      border-radius: var(--radius-sm);
      font-size: 14px;
      font-weight: 600;
      cursor: pointer;
      transition: all 0.2s ease;
    }
    .btn-add:hover {
      background: #4c76c8;
      box-shadow: 0 4px 12px rgba(95, 143, 224, 0.3);
      transform: translateY(-1px);
    }
    .btn-add::before {
      content: "➕";
    }

    /* Bouton Générer PDF - Vert */
    .btn-pdf {
      display: inline-flex;
      align-items: center;
      gap: 5px;
      padding: 5px 12px;
      background: #FFF7ED;
      color: #EA580C;
      border: none;
      border-radius: var(--radius-sm);
      font-size: 12px;
      font-weight: 500;
      font-family: var(--font);
      cursor: pointer;
      transition: all 0.15s;
      height: 30px;
      white-space: nowrap;
    }
    .btn-pdf:hover {
      background: #FFEDD5;
      transform: translateY(-1px);
      box-shadow: var(--shadow-sm);
    }


    /* Bouton Annuler - Gris */
    .btn-cancel {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      padding: 8px 14px;
      background: #F8FAFC;
      color: #64748B;
      border: 1px solid #E2E8F0;
      border-radius: var(--radius-sm);
      font-size: 13px;
      font-weight: 500;
      cursor: pointer;
      transition: all 0.2s ease;
    }
    .btn-cancel:hover {
      background: #F1F5F9;
      border-color: #CBD5E1;
    }

    /* Bouton Enregistrer - Bleu primaire */
    .btn-save {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      padding: 10px 18px;
      background: var(--color-primary);
      color: white;
      border: none;
      border-radius: var(--radius-sm);
      font-size: 14px;
      font-weight: 600;
      cursor: pointer;
      transition: all 0.2s ease;
    }
    .btn-save:hover {
      background: #4c76c8;
      box-shadow: 0 4px 12px rgba(95, 143, 224, 0.3);
    }
    .btn-save::before {
      content: "💾";
    }

    /* Petit bouton icône seulement */
    .btn-icon {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 32px;
      height: 32px;
      padding: 0;
      background: transparent;
      border: 1px solid #E2E8F0;
      border-radius: var(--radius-sm);
      cursor: pointer;
      transition: all 0.2s ease;
    }
    .btn-icon:hover {
      background: #F1F5F9;
    }
    .btn-icon.delete:hover {
      background: #FEF2F2;
      border-color: #FECACA;
    }
    .btn-icon.edit:hover {
      background: #EFF6FF;
      border-color: #BFDBFE;
    }

    /* FORMULAIRES DE SAISIE */
    
    .form-container {
      background: #FFFFFF;
      border-radius: var(--radius);
      border: 1px solid var(--color-border);
      padding: 16px;
      margin-bottom: 16px;
      animation: fadeInUp 0.4s ease-out;
    }

    .form-row {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
      gap: 12px;
      margin-bottom: 12px;
    }

    .form-field {
      display: flex;
      flex-direction: column;
      gap: 4px;
    }

    .form-label {
      font-size: 13px;
      font-weight: 600;
      color: var(--color-text);
    }

    .form-input,
    .form-select {
      padding: 8px 12px;
      border: 1px solid var(--color-border);
      border-radius: var(--radius-sm);
      font-size: 14px;
      transition: all 0.2s ease;
    }

    .form-input:focus,
    .form-select:focus {
      outline: none;
      border-color: var(--color-primary);
      box-shadow: 0 0 0 3px rgba(95, 143, 224, 0.1);
    }

    .form-checkbox-field {
      display: flex;
      align-items: center;
      gap: 8px;
      padding: 8px 0;
    }

    .form-checkbox-field input[type="checkbox"] {
      width: 18px;
      height: 18px;
      cursor: pointer;
    }

    .form-actions {
      display: flex;
      gap: 8px;
      justify-content: flex-end;
      margin-top: 0;
    }

    /* TABLEAUX DE DONNÉES */
    
    .data-table-container {
      background: #FFFFFF;
      border-radius: var(--radius);
      border: none;
      overflow: visible;
      animation: fadeInUp 0.5s ease-out;
    }

    .data-table {
      width: 100%;
      border-collapse: collapse;
    }

    .data-table thead {
      background: linear-gradient(90deg, rgba(95, 143, 224, 0.08), rgba(182, 154, 248, 0.08));
    }

    .data-table th {
      padding: 12px;
      text-align: left;
      font-size: 13px;
      font-weight: 600;
      color: var(--color-text);
      border-bottom: 2px solid var(--color-border);
    }

    .data-table td {
      padding: 10px 12px;
      font-size: 13px;
      border-bottom: 1px solid rgba(224, 228, 242, 0.5);
    }

    .data-table tbody tr {
      transition: all 0.2s ease;
      animation: fadeIn 0.3s ease-out backwards;
    }

    .data-table tbody tr:hover {
      background: rgba(95, 143, 224, 0.04);
    }

    .data-table tbody tr.selected {
      background: rgba(95, 143, 224, 0.1);
    }

    .data-table tbody tr.locked {
      background: rgba(200, 200, 200, 0.2);
      opacity: 0.6;
      pointer-events: none;
    }
    .data-table tbody tr.locked button {
      pointer-events: all;
      opacity: 1;
    }

    /* BADGES ET ÉTATS */
    
    .status-badge {
      display: inline-block;
      padding: 4px 10px;
      border-radius: 999px;
      font-size: 11px;
      font-weight: 600;
    }

    .status-badge.pending {
      background: rgba(251, 191, 36, 0.1);
      color: #D97706;
    }

    .status-badge.completed {
      background: rgba(34, 197, 94, 0.1);
      color: #16A34A;
    }

    .status-badge.locked {
      background: rgba(107, 114, 128, 0.1);
      color: #6B7280;
    }
    
    .status-badge.super-admin {
      background: rgba(139, 92, 246, 0.15);
      color: #7C3AED;
    }
    
    .status-badge.gestionnaire-admin {
      background: rgba(59, 130, 246, 0.15);
      color: #2563EB;
    }
    
    .status-badge.gestionnaire {
      background: rgba(34, 197, 94, 0.15);
      color: #16A34A;
    }
    
    .status-badge.utilisateur {
      background: rgba(107, 114, 128, 0.15);
      color: #6B7280;
    }

    /* TOTAUX ET RÉCAPITULATIFS */
    
    .summary-box {
      background: linear-gradient(135deg, rgba(95, 143, 224, 0.08), rgba(182, 154, 248, 0.08));
      border-radius: var(--radius);
      padding: 16px;
      margin-top: 16px;
      display: flex;
      justify-content: space-between;
      align-items: center;
      animation: fadeInUp 0.4s ease-out;
    }

    .summary-label {
      font-size: 14px;
      font-weight: 600;
      color: var(--color-text);
    }

    .summary-value {
      font-size: 24px;
      font-weight: 700;
      color: var(--color-primary);
    }

    /* RESPONSIVE */

    @media (max-width: 900px) {
      .menu-toggle {
        display: flex;
      }
      
      .sidebar {
        position: fixed;
        left: 0;
        top: 0;
        bottom: 0;
        width: 280px;
        z-index: 999;
        transform: translateX(-100%);
        box-shadow: 4px 0 12px rgba(0, 0, 0, 0.1);
      }
      
      .sidebar.mobile-open {
        transform: translateX(0);
      }
      
      .app-shell {
        flex-direction: column;
      }
      .main {
        padding: 70px 10px 16px;
      }
      .content-card {
        border-radius: 0 0 var(--radius-lg) var(--radius-lg);
      }
    }

    /* Styles pour les sections du profil */
    .config-section {
      margin-bottom: 30px;
      padding: 20px;
      background: #F9FAFB;
      border-radius: var(--radius-sm);
      border: 1px solid #E5E7EB;
    }
    
    .config-section-title {
      font-size: 15px;
      font-weight: 600;
      margin: 0 0 15px 0;
      color: #374151;
      padding-bottom: 10px;
      border-bottom: 2px solid #5F8FE0;
    }
    
    .config-section-fields {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
      gap: 15px;
    }
    
    .config-line-field {
      display: flex;
      flex-direction: column;
      gap: 5px;
    }
    
    /* Styles pour les cartes de rapports */
    .rapport-card {
      background: white;
      border: 2px solid #E5E7EB;
      border-radius: var(--radius);
      padding: 25px;
      text-align: center;
      cursor: pointer;
      transition: all 0.3s ease;
    }
    
    .rapport-card:hover {
      border-color: #5F8FE0;
      box-shadow: 0 4px 12px rgba(95, 143, 224, 0.15);
      transform: translateY(-2px);
    }
    
    /* RESPONSIVE MOBILE AMÉLIORÉ */
    @media (max-width: 768px) {
      .app-shell {
        flex-direction: column;
      }
      
      .sidebar {
        width: 100%;
        height: auto;
        position: sticky;
        top: 0;
        z-index: 100;
        overflow-x: auto;
        padding: 10px;
      }
      
      .nav-list {
        flex-direction: row;
        gap: 5px;
        overflow-x: auto;
        padding-bottom: 5px;
      }
      
      .nav-item {
        min-width: auto;
        flex-shrink: 0;
        padding: 8px 12px;
        font-size: 12px;
      }
      
      .nav-icon {
        width: 18px;
        height: 18px;
      }
      
      .nav-label {
        display: none;
      }
      
      .main {
        width: 100%;
        padding: 10px;
      }
      
      .config-section-fields {
        grid-template-columns: 1fr;
      }
      
      .data-table-container {
        overflow-x: auto;
      }
      
      .data-table {
        font-size: 11px;
        min-width: 100%;
      }
      
      .data-table th,
      .data-table td {
        padding: 6px;
        white-space: nowrap;
      }
      
      .btn {
        padding: 6px 10px;
        font-size: 11px;
      }
      
      .form-row {
        flex-direction: column;
      }
      
      .form-field {
        width: 100%;
      }
    }

    @media (max-width: 600px) {
      .top-bar {
        flex-direction: column;
        align-items: flex-start;
        gap: 6px;
      }
      .page-title h1 {
        font-size: 19px;
      }
      .main {
        padding: 8px 6px 14px;
      }
      .submenu-item {
        font-size: 13px;
        padding: 5px 10px;
      }
      .submenu-item.active {
        font-size: 14px;
        padding: 6px 12px;
      }
      .content-card {
        padding: 0 10px 12px;
      }
      .welcome-title {
        font-size: 26px;
      }
      .welcome-subtitle {
        font-size: 14px;
      }
      .welcome-quote-main {
        font-size: 14px;
      }
      .dashboard-grid {
        grid-template-columns: minmax(0, 1fr);
      }
      .config-line-editor {
        flex-direction: column;
        align-items: stretch;
      }
      .config-line-actions {
        margin-left: 0;
      }
      .config-table {
        font-size: 12px;
      }
      
      .config-section {
        padding: 15px;
      }
      
      .rapport-card {
        padding: 15px;
      }
    }
  
/* Présentation Profils en blocs verticaux */
.config-form-sections {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
  gap: 20px;
  padding: 20px;
}

.config-section {
  background: white;
  border: 1px solid #e5e7eb;
  border-radius: var(--radius);
  padding: 20px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}

.config-section-title {
  margin: 0 0 15px 0;
  padding-bottom: 10px;
  border-bottom: 2px solid #5F8FE0;
  color: #5F8FE0;
  font-size: 16px;
  font-weight: 600;
}

.config-section-fields {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.config-section-fields .field-wrapper {
  display: flex;
  flex-direction: column;
}

.config-section-fields label {
  margin-bottom: 5px;
  font-weight: 500;
  color: #374151;
  font-size: 14px;
}

.config-section-fields input,
.config-section-fields select {
  padding: 8px 12px;
  border: 1px solid #d1d5db;
  border-radius: var(--radius-sm);
  font-size: 14px;
}

.config-section-fields input:focus,
.config-section-fields select:focus {
  outline: none;
  border-color: #5F8FE0;
  box-shadow: 0 0 0 3px rgba(95, 143, 224, 0.1);
}

.config-line-actions {
  grid-column: 1 / -1;
  display: flex;
  justify-content: flex-end;
  padding: 20px;
  background: #f9fafb;
  border-top: 1px solid #e5e7eb;
  border-radius: 0 0 var(--radius) var(--radius);
  margin: 20px -20px -20px -20px;
}


/* Responsive global */
.content-card {
  max-width: 100%;
  overflow-x: hidden;
}

.content-body {
  max-width: 100%;
  overflow-x: hidden;
}

/* Grid profils responsive */
@media (max-width: 1400px) {
  .config-form-sections {
    grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
  }
}

@media (max-width: 1024px) {
  .config-form-sections {
    grid-template-columns: 1fr;
  }
}

/* Submenu items responsive */
.submenu-divider {
  display: none;
}


/* Profils ULTRA compacts */
.config-form-sections {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 15px;
  padding: 15px;
}

.config-section {
  background: white;
  border: 1px solid #e5e7eb;
  border-radius: var(--radius-sm);
  padding: 12px;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
}

.config-section-title {
  margin: 0 0 10px 0;
  padding-bottom: 8px;
  border-bottom: 2px solid #5F8FE0;
  color: #5F8FE0;
  font-size: 14px;
  font-weight: 600;
}

.config-section-fields {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.config-section-fields .field-wrapper {
  display: flex;
  flex-direction: column;
}

.config-section-fields label {
  margin-bottom: 3px;
  font-weight: 500;
  color: #374151;
  font-size: 13px;
}

.config-section-fields input,
.config-section-fields select {
  padding: 6px 10px;
  border: 1px solid #d1d5db;
  border-radius: 4px;
  font-size: 13px;
}

.config-section-fields input:focus,
.config-section-fields select:focus {
  outline: none;
  border-color: #5F8FE0;
  box-shadow: 0 0 0 2px rgba(95, 143, 224, 0.1);
}

.config-line-actions {
  grid-column: 1 / -1;
  display: flex;
  justify-content: flex-end;
  padding: 12px;
  background: #f9fafb;
  border-top: 1px solid #e5e7eb;
  border-radius: 0 0 var(--radius-sm) var(--radius-sm);
  margin: 15px -12px -12px -12px;
}

.config-line-actions .btn {
  padding: 8px 16px;
  font-size: 13px;
}


/* Animation feedback sauvegarde */
/* @keyframes fieldSaved {
/*   0% { border-color: #10b981; box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.3); }
/*   50% { border-color: #10b981; box-shadow: 0 0 0 6px rgba(16, 185, 129, 0.2); }
/*   100% { border-color: #d1d5db; box-shadow: none; }
/* } */

/* .field-saved {
/*   animation: fieldSaved 1.5s ease-out;
/* } */


/* Mode lecture profils */
.config-form-sections.readonly-mode .config-section {
  background: #f9fafb;
  border: 1px solid #e5e7eb;
}

.config-section.readonly-mode {
  background: linear-gradient(135deg, #fafbfc 0%, #f4f6f8 100%);
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

.field-readonly {
  background: transparent !important;
  border: none !important;
  padding-left: 0 !important;
  font-weight: 500;
  color: #1f2937;
  cursor: default;
}

.field-readonly:focus {
  outline: none !important;
  box-shadow: none !important;
}

select.field-readonly {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-image: none;
}

/* Animation transition mode édition */
.config-form-sections {
  transition: all 0.3s ease;
}

.config-form-sections.editing-mode .config-section {
  background: white;
  border-color: #5F8FE0;
  box-shadow: 0 2px 8px rgba(95, 143, 224, 0.1);
}


/* Header section avec boutons */
.config-section-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 10px;
  padding-bottom: 8px;
  border-bottom: 2px solid #5F8FE0;
}

.config-section-header .btn-sm {
  padding: 4px 12px;
  font-size: 12px;
  margin-left: 8px;
}

.config-section-title {
  margin: 0;
  color: #5F8FE0;
  font-size: 14px;
  font-weight: 600;
}


/* Différencier labels et valeurs en mode lecture */
.config-section.readonly-mode label {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: #6b7280;
  font-weight: 600;
  margin-bottom: 2px;
}

.config-section.readonly-mode input.field-readonly,
.config-section.readonly-mode select.field-readonly {
  font-size: 15px;
  color: #111827;
  font-weight: 500;
  padding-left: 0;
  margin-top: 2px;
}


/* Interface formats de numérotation */
.formats-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 20px;
  margin-top: 15px;
}

.format-item {
  background: #f9fafb;
  padding: 15px;
  border-radius: var(--radius-sm);
  border: 1px solid #e5e7eb;
}

.format-item label {
  display: block;
  font-weight: 600;
  margin-bottom: 8px;
  color: #374151;
  font-size: 14px;
}

.format-preview {
  margin-top: 8px;
  padding: 8px;
  background: white;
  border-radius: 4px;
  font-size: 13px;
  color: #5F8FE0;
  font-weight: 500;
}

.format-counter {
  margin-top: 10px;
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 13px;
}

.form-input-sm {
  width: 80px;
  padding: 4px 8px;
  border: 1px solid #d1d5db;
  border-radius: 4px;
}


/* Boutons variables format */
.btn-format-var {
  padding: 8px 16px;
  background: white;
  border: 1px solid #5F8FE0;
  color: #5F8FE0;
  border-radius: var(--radius-sm);
  cursor: pointer;
  font-size: 13px;
  font-weight: 500;
  transition: all 0.2s;
}

.btn-format-var:hover {
  background: #5F8FE0;
  color: white;
}

.format-input:focus {
  outline: none;
  border-color: #5F8FE0;
  box-shadow: 0 0 0 3px rgba(95, 143, 224, 0.1);
}


/* Corriger espacement sidebar-footer */
.sidebar-footer { /* overridden */ }


/* Interface tarifs et formats */
.format-card {
  background: white;
  border: 1px solid #e5e7eb;
  border-radius: var(--radius-sm);
  padding: 20px;
}

.format-card-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 20px;
  padding-bottom: 15px;
  border-bottom: 1px solid #e5e7eb;
}

.format-card-header h4 {
  margin: 0;
  color: #111827;
  font-size: 16px;
}

.format-display {
  margin-bottom: 12px;
}

.format-display label {
  display: block;
  font-size: 12px;
  color: #6b7280;
  margin-bottom: 4px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.format-display .format-value {
  font-size: 15px;
  color: #111827;
  font-weight: 500;
  font-family: 'Courier New', monospace;
}

.format-display .format-preview {
  font-size: 14px;
  color: #5F8FE0;
  font-weight: 500;
  font-family: 'Courier New', monospace;
}

.btn-sm {
  padding: 6px 12px;
  font-size: 13px;
}

.btn-danger {
  background: #ef4444;
  color: white;
}

.btn-danger:hover {
  background: #dc2626;
}


/* ========== PROFIL UTILISATEUR - STYLE AMÉLIORÉ ========== */
.profile-field-group {
    margin-bottom: 20px;
    padding-bottom: 15px;
    border-bottom: 1px solid #f0f0f0;
}

.profile-field-group:last-child {
    border-bottom: none;
}

.profile-field-label {
    font-size: 11px !important;
    font-weight: 500 !important;
    color: #9ca3af !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    margin-bottom: 4px !important;
    display: block !important;
}

.profile-field-value {
    font-size: 16px !important;
    font-weight: 600 !important;
    color: #1f2937 !important;
    line-height: 1.4 !important;
}

.profile-field-value:empty::after {
    content: "—";
    color: #d1d5db;
    font-weight: 400;
}

/* Style pour la section Informations personnelles */
#profil-utilisateur-section .form-group label,
.user-profile-section .form-group label,
[data-section="profil-utilisateur"] label {
    font-size: 11px !important;
    font-weight: 500 !important;
    color: #9ca3af !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    margin-bottom: 4px !important;
}

#profil-utilisateur-section .form-group .field-value,
#profil-utilisateur-section .form-group input:read-only,
#profil-utilisateur-section .form-group input:disabled,
#profil-utilisateur-section .form-group select:disabled,
.user-profile-section .field-value {
    font-size: 16px !important;
    font-weight: 600 !important;
    color: #1f2937 !important;
    background: transparent !important;
    border: none !important;
    padding-left: 0 !important;
}

/* Mode lecture du profil */
.profile-readonly .form-control {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding-left: 0 !important;
    font-size: 16px !important;
    font-weight: 600 !important;
    color: #1f2937 !important;
}

/* Titres de sections dans le profil */
.profile-section-title,
#profil-utilisateur-section h4,
.user-profile-section h4 {
    color: #4f46e5 !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    margin-bottom: 20px !important;
    padding-bottom: 10px !important;
    border-bottom: 2px solid #e0e7ff !important;
}

/* Card profil */
.profile-card {
    background: #fff;
    border-radius: var(--radius);
    padding: 24px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.1);
}
/* ========== FIN PROFIL UTILISATEUR ========== */


/* btn-delete géré dans le bloc principal */

/* Bouton poubelle icône seule */
.btn-icon-delete,
button.btn-danger[title*="upprimer"],
.table-actions .btn-danger {
    background-color: #fee2e2 !important;
    color: #dc2626 !important;
    border: 1px solid #fecaca !important;
    border-radius: var(--radius-sm) !important;
    width: 36px !important;
    height: 36px !important;
    padding: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.btn-icon-delete:hover,
button.btn-danger[title*="upprimer"]:hover,
.table-actions .btn-danger:hover {
    background-color: #dc2626 !important;
    color: white !important;
}

/* Spécifique pour les tableaux Voyages et Financements */
#liste-voyages .btn-danger,
#liste-financements .btn-danger,
.voyages-table .btn-danger,
.financements-table .btn-danger {
    background-color: #fee2e2 !important;
    color: #dc2626 !important;
    border: 1px solid #fecaca !important;
    border-radius: var(--radius-sm) !important;
}

#liste-voyages .btn-danger:hover,
#liste-financements .btn-danger:hover,
.voyages-table .btn-danger:hover,
.financements-table .btn-danger:hover {
    background-color: #dc2626 !important;
}

/* PAGE DE PUBLICITE - LANDING PAGE */
.landing-page {
    min-height: 100vh;
    background: linear-gradient(135deg, #f8faff 0%, #e8f0ff 50%, #f0e8ff 100%);
    font-family: "Avenir", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
}

.landing-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 20px 60px;
    background: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(10px);
    box-shadow: 0 2px 20px rgba(95, 143, 224, 0.08);
    position: sticky;
    top: 0;
    z-index: 100;
}

.landing-logo {
    display: flex;
    align-items: center;
    gap: 12px;
}

.landing-logo-icon {
    width: 48px;
    height: 48px;
    background: linear-gradient(135deg, #5F8FE0, #7B68EE);
    border-radius: var(--radius);
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 15px rgba(95, 143, 224, 0.3);
}

.landing-logo-icon svg {
    width: 28px;
    height: 28px;
    stroke: white;
    fill: none;
}

.landing-logo-text {
    font-size: 26px;
    font-weight: 700;
    background: linear-gradient(135deg, #5F8FE0, #7B68EE);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.landing-nav {
    display: flex;
    gap: 40px;
    align-items: center;
}

.landing-nav-link {
    color: #4B5563;
    text-decoration: none;
    font-size: 15px;
    font-weight: 500;
    transition: color 0.2s;
    cursor: pointer;
}

.landing-nav-link:hover {
    color: #5F8FE0;
}

.landing-btn-connect {
    padding: 12px 28px;
    background: linear-gradient(135deg, #5F8FE0, #7B68EE);
    color: white;
    border: none;
    border-radius: var(--radius);
    font-size: 15px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s;
    box-shadow: 0 4px 15px rgba(95, 143, 224, 0.3);
}

.landing-btn-connect:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(95, 143, 224, 0.4);
}

.landing-hero {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 80px 60px;
    max-width: 1400px;
    margin: 0 auto;
    gap: 60px;
}

.landing-hero-content {
    flex: 1;
    max-width: 600px;
}

.landing-hero-title {
    font-size: 52px;
    font-weight: 800;
    color: #1F2933;
    line-height: 1.1;
    margin-bottom: 24px;
}

.landing-hero-title span {
    background: linear-gradient(135deg, #5F8FE0, #7B68EE);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.landing-hero-subtitle {
    font-size: 20px;
    color: #4B5563;
    line-height: 1.6;
    margin-bottom: 40px;
}

.landing-hero-buttons {
    display: flex;
    gap: 16px;
}

.landing-btn-primary {
    padding: 16px 36px;
    background: linear-gradient(135deg, #5F8FE0, #7B68EE);
    color: white;
    border: none;
    border-radius: var(--radius);
    font-size: 17px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s;
    box-shadow: 0 6px 20px rgba(95, 143, 224, 0.35);
}

.landing-btn-primary:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 30px rgba(95, 143, 224, 0.45);
}

.landing-btn-secondary {
    padding: 16px 36px;
    background: white;
    color: #5F8FE0;
    border: 2px solid #5F8FE0;
    border-radius: var(--radius);
    font-size: 17px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s;
}

.landing-btn-secondary:hover {
    background: #f0f4ff;
    transform: translateY(-3px);
}

.landing-hero-image {
    flex: 1;
    max-width: 600px;
}

.landing-mockup {
    background: white;
    border-radius: var(--radius-lg);
    box-shadow: 0 25px 80px rgba(95, 143, 224, 0.2);
    padding: 20px;
    transform: perspective(1000px) rotateY(-5deg);
}

.landing-mockup-header {
    display: flex;
    gap: 8px;
    margin-bottom: 15px;
}

.landing-mockup-dot {
    width: 12px;
    height: 12px;
    border-radius: 50%;
}

.landing-mockup-dot:nth-child(1) { background: #ff5f56; }
.landing-mockup-dot:nth-child(2) { background: #ffbd2e; }
.landing-mockup-dot:nth-child(3) { background: #27ca40; }

.landing-mockup-content {
    background: linear-gradient(135deg, #f8f9ff, #f0f4ff);
    border-radius: var(--radius);
    padding: 30px;
    min-height: 300px;
}

.landing-features {
    padding: 100px 60px;
    background: white;
}

.landing-section-title {
    text-align: center;
    font-size: 40px;
    font-weight: 700;
    color: #1F2933;
    margin-bottom: 16px;
}

.landing-section-subtitle {
    text-align: center;
    font-size: 18px;
    color: #6B7280;
    margin-bottom: 60px;
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
}

.landing-features-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 30px;
    max-width: 1200px;
    margin: 0 auto;
}

.landing-feature-card {
    background: linear-gradient(135deg, #fafbff, #f5f7ff);
    border-radius: var(--radius-lg);
    padding: 35px;
    transition: all 0.3s;
    border: 1px solid rgba(95, 143, 224, 0.1);
}

.landing-feature-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 20px 50px rgba(95, 143, 224, 0.15);
}

.landing-feature-icon {
    width: 60px;
    height: 60px;
    background: linear-gradient(135deg, #5F8FE0, #7B68EE);
    border-radius: var(--radius-lg);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 20px;
    box-shadow: 0 8px 20px rgba(95, 143, 224, 0.25);
}

.landing-feature-icon svg {
    width: 30px;
    height: 30px;
    stroke: white;
    fill: none;
}

.landing-feature-title {
    font-size: 20px;
    font-weight: 700;
    color: #1F2933;
    margin-bottom: 12px;
}

.landing-feature-desc {
    font-size: 15px;
    color: #6B7280;
    line-height: 1.6;
}

.landing-footer {
    background: linear-gradient(135deg, #1F2933, #2D3748);
    padding: 50px 60px;
    text-align: center;
}

.landing-footer-text {
    color: rgba(255, 255, 255, 0.7);
    font-size: 14px;
}

.landing-footer-text strong {
    color: white;
}

@media (max-width: 900px) {
    .landing-header { padding: 15px 20px; }
    .landing-nav { display: none; }
    .landing-hero { flex-direction: column; padding: 40px 20px; text-align: center; }
    .landing-hero-title { font-size: 36px; }
    .landing-hero-buttons { justify-content: center; flex-wrap: wrap; }
    .landing-features { padding: 60px 20px; }
    .landing-section-title { font-size: 28px; }
    color: white !important;
}
/* ========== FIN BOUTONS SUPPRIMER ========== */


/* ========== MASQUER EXERCICES PASSÉS ========== */
/* Les exercices passés ne doivent pas apparaître en retard */
.exercice-passe,
.exercice-expire {
    display: none !important;
}
/* ========== FIN MASQUER EXERCICES ========== */

    /* === PERMISSIONS PAR ROLE === */
    /* Consultant: masquer créer, modifier, supprimer */
    .role-consultant .btn-primary[onclick*="save"],
    .role-consultant .btn-primary[onclick*="add"],
    .role-consultant .btn-primary[onclick*="create"],
    .role-consultant .btn-primary[onclick*="Enregistrer"],
    .role-consultant .btn-secondary[onclick*="edit"],
    .role-consultant .btn-danger[onclick*="delete"],
    .role-consultant .btn-danger[onclick*="supprimer"],
    .role-consultant button[onclick*="Delete"],
    .role-consultant button[onclick*="Supprimer"] {
      display: none !important;
    }
    /* Collaborateur: masquer seulement supprimer */
    .role-collaborateur .btn-danger[onclick*="delete"],
    .role-collaborateur .btn-danger[onclick*="supprimer"],
    .role-collaborateur button[onclick*="Delete"],
    .role-collaborateur button[onclick*="Supprimer"] {
      display: none !important;
    }


/* === BLOC 2 - Styles composants === */

          .modele-item:hover {
            background: #F3F4F6 !important;
          }
          .modele-item.active {
            background: #EFF6FF !important;
            border-left: 3px solid #3B82F6 !important;
          }
        
/* Présentation Profils en blocs verticaux */
.config-form-sections {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
  gap: 20px;
  padding: 20px;
}

.config-section {
  background: white;
  border: 1px solid #e5e7eb;
  border-radius: var(--radius);
  padding: 20px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}

.config-section-title {
  margin: 0 0 15px 0;
  padding-bottom: 10px;
  border-bottom: 2px solid #5F8FE0;
  color: #5F8FE0;
  font-size: 16px;
  font-weight: 600;
}

.config-section-fields {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.config-section-fields .field-wrapper {
  display: flex;
  flex-direction: column;
}

.config-section-fields label {
  margin-bottom: 5px;
  font-weight: 500;
  color: #374151;
  font-size: 14px;
}

.config-section-fields input,
.config-section-fields select {
  padding: 8px 12px;
  border: 1px solid #d1d5db;
  border-radius: var(--radius-sm);
  font-size: 14px;
}

.config-section-fields input:focus,
.config-section-fields select:focus {
  outline: none;
  border-color: #5F8FE0;
  box-shadow: 0 0 0 3px rgba(95, 143, 224, 0.1);
}

.config-line-actions {
  grid-column: 1 / -1;
  display: flex;
  justify-content: flex-end;
  padding: 20px;
  background: #f9fafb;
  border-top: 1px solid #e5e7eb;
  border-radius: 0 0 var(--radius) var(--radius);
  margin: 20px -20px -20px -20px;
}


/* Responsive global */
.content-card {
  max-width: 100%;
  overflow-x: hidden;
}

.content-body {
  max-width: 100%;
  overflow-x: hidden;
}

/* Grid profils responsive */
@media (max-width: 1400px) {
  .config-form-sections {
    grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
  }
}

@media (max-width: 1024px) {
  .config-form-sections {
    grid-template-columns: 1fr;
  }
}

/* Submenu items responsive */
.submenu-divider {
  display: none;
}


/* Profils ULTRA compacts */
.config-form-sections {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 15px;
  padding: 15px;
}

.config-section {
  background: white;
  border: 1px solid #e5e7eb;
  border-radius: var(--radius-sm);
  padding: 12px;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
}

.config-section-title {
  margin: 0 0 10px 0;
  padding-bottom: 8px;
  border-bottom: 2px solid #5F8FE0;
  color: #5F8FE0;
  font-size: 14px;
  font-weight: 600;
}

.config-section-fields {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.config-section-fields .field-wrapper {
  display: flex;
  flex-direction: column;
}

.config-section-fields label {
  margin-bottom: 3px;
  font-weight: 500;
  color: #374151;
  font-size: 13px;
}

.config-section-fields input,
.config-section-fields select {
  padding: 6px 10px;
  border: 1px solid #d1d5db;
  border-radius: 4px;
  font-size: 13px;
}

.config-section-fields input:focus,
.config-section-fields select:focus {
  outline: none;
  border-color: #5F8FE0;
  box-shadow: 0 0 0 2px rgba(95, 143, 224, 0.1);
}

.config-line-actions {
  grid-column: 1 / -1;
  display: flex;
  justify-content: flex-end;
  padding: 12px;
  background: #f9fafb;
  border-top: 1px solid #e5e7eb;
  border-radius: 0 0 var(--radius-sm) var(--radius-sm);
  margin: 15px -12px -12px -12px;
}

.config-line-actions .btn {
  padding: 8px 16px;
  font-size: 13px;
}


/* Animation feedback sauvegarde */
/* @keyframes fieldSaved {
/*   0% { border-color: #10b981; box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.3); }
/*   50% { border-color: #10b981; box-shadow: 0 0 0 6px rgba(16, 185, 129, 0.2); }
/*   100% { border-color: #d1d5db; box-shadow: none; }
/* } */

/* .field-saved {
/*   animation: fieldSaved 1.5s ease-out;
/* } */


/* Mode lecture profils */
.config-form-sections.readonly-mode .config-section {
  background: #f9fafb;
  border: 1px solid #e5e7eb;
}

.config-section.readonly-mode {
  background: linear-gradient(135deg, #fafbfc 0%, #f4f6f8 100%);
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

.field-readonly {
  background: transparent !important;
  border: none !important;
  padding-left: 0 !important;
  font-weight: 500;
  color: #1f2937;
  cursor: default;
}

.field-readonly:focus {
  outline: none !important;
  box-shadow: none !important;
}

select.field-readonly {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-image: none;
}

/* Animation transition mode édition */
.config-form-sections {
  transition: all 0.3s ease;
}

.config-form-sections.editing-mode .config-section {
  background: white;
  border-color: #5F8FE0;
  box-shadow: 0 2px 8px rgba(95, 143, 224, 0.1);
}


/* Header section avec boutons */
.config-section-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 10px;
  padding-bottom: 8px;
  border-bottom: 2px solid #5F8FE0;
}

.config-section-header .btn-sm {
  padding: 4px 12px;
  font-size: 12px;
  margin-left: 8px;
}

.config-section-title {
  margin: 0;
  color: #5F8FE0;
  font-size: 14px;
  font-weight: 600;
}


/* Différencier labels et valeurs en mode lecture */
.config-section.readonly-mode label {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: #6b7280;
  font-weight: 600;
  margin-bottom: 2px;
}

.config-section.readonly-mode input.field-readonly,
.config-section.readonly-mode select.field-readonly {
  font-size: 15px;
  color: #111827;
  font-weight: 500;
  padding-left: 0;
  margin-top: 2px;
}


/* Interface formats de numérotation */
.formats-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 20px;
  margin-top: 15px;
}

.format-item {
  background: #f9fafb;
  padding: 15px;
  border-radius: var(--radius-sm);
  border: 1px solid #e5e7eb;
}

.format-item label {
  display: block;
  font-weight: 600;
  margin-bottom: 8px;
  color: #374151;
  font-size: 14px;
}

.format-preview {
  margin-top: 8px;
  padding: 8px;
  background: white;
  border-radius: 4px;
  font-size: 13px;
  color: #5F8FE0;
  font-weight: 500;
}

.format-counter {
  margin-top: 10px;
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 13px;
}

.form-input-sm {
  width: 80px;
  padding: 4px 8px;
  border: 1px solid #d1d5db;
  border-radius: 4px;
}


/* Boutons variables format */
.btn-format-var {
  padding: 8px 16px;
  background: white;
  border: 1px solid #5F8FE0;
  color: #5F8FE0;
  border-radius: var(--radius-sm);
  cursor: pointer;
  font-size: 13px;
  font-weight: 500;
  transition: all 0.2s;
}

.btn-format-var:hover {
  background: #5F8FE0;
  color: white;
}

.format-input:focus {
  outline: none;
  border-color: #5F8FE0;
  box-shadow: 0 0 0 3px rgba(95, 143, 224, 0.1);
}


/* Corriger espacement sidebar-footer */
.sidebar-footer { /* overridden */ }


/* Interface tarifs et formats */
.format-card {
  background: white;
  border: 1px solid #e5e7eb;
  border-radius: var(--radius-sm);
  padding: 20px;
}

.format-card-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 20px;
  padding-bottom: 15px;
  border-bottom: 1px solid #e5e7eb;
}

.format-card-header h4 {
  margin: 0;
  color: #111827;
  font-size: 16px;
}

.format-display {
  margin-bottom: 12px;
}

.format-display label {
  display: block;
  font-size: 12px;
  color: #6b7280;
  margin-bottom: 4px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.format-display .format-value {
  font-size: 15px;
  color: #111827;
  font-weight: 500;
  font-family: 'Courier New', monospace;
}

.format-display .format-preview {
  font-size: 14px;
  color: #5F8FE0;
  font-weight: 500;
  font-family: 'Courier New', monospace;
}

.btn-sm {
  padding: 6px 12px;
  font-size: 13px;
}

.btn-danger {
  background: #ef4444;
  color: white;
}

.btn-danger:hover {
  background: #dc2626;
}


/* ============================================
   RELIEF - CARTES ET ZONES DE CONTENU
   ============================================ */

.content-card {
  background: var(--surface) !important;
  border-radius: var(--radius-lg) !important;
  box-shadow: 0 4px 20px rgba(95,143,224,0.10), 0 1px 4px rgba(0,0,0,0.06) !important;
  border: none !important;
  margin: 8px;
}

.config-section {
  background: var(--surface) !important;
  border-radius: var(--radius) !important;
  box-shadow: var(--shadow-sm) !important;
  border: 1px solid var(--border) !important;
}

.config-block {
  background: var(--surface) !important;
  border-radius: var(--radius) !important;
  box-shadow: var(--shadow-sm) !important;
  border: 1px solid var(--border) !important;
  padding: 16px !important;
  margin-bottom: 12px !important;
}

.login-box {
  box-shadow: var(--shadow-lg) !important;
  border-radius: var(--radius-lg) !important;
}

/* Tables avec relief subtil */
table {
  border-radius: var(--radius) !important;
  overflow: hidden !important;
  box-shadow: var(--shadow-sm) !important;
}

/* Lignes alternées plus douces */
tr:nth-child(even) {
  background: rgba(238, 242, 251, 0.5) !important;
}

/* En-tête tableau */
thead tr, th {
  background: #F0EBFF !important;
  color: #3B6FCC !important;
  padding: 10px 12px !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  white-space: nowrap !important;
  height: 42px !important;
  vertical-align: middle !important;
}

td {
  padding: 9px 12px !important;
  vertical-align: middle !important;
  font-size: 13px !important;
}

/* ============================================
   SYSTÈME TABLEAUX UNIVERSEL
   ============================================ */

.it-wrapper {
  width: 100%;
  margin-bottom: 20px;
}

.it-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 14px;
  margin-top: 16px;
  gap: 12px;
  padding: 0 2px;
}

.it-search-box {
  display: flex;
  align-items: center;
  gap: 6px;
  background: transparent;
  border: 1px solid #D1D9EE;
  border-radius: var(--radius-lg);
  padding: 5px 10px;
  flex: 1;
  max-width: 220px;
  transition: all 0.2s;
}

.it-search-box:focus-within {
  background: white;
  border-color: #B0BDD8;
}

.it-search-box svg { color: var(--text-muted); flex-shrink: 0; }

.it-search {
  border: none !important;
  outline: none !important;
  box-shadow: none !important;
  background: transparent !important;
  font-size: 13px !important;
  color: var(--text) !important;
  width: 100% !important;
  padding: 0 !important;
}

.it-count {
  font-size: 12px;
  color: var(--text-muted);
  white-space: nowrap;
  font-weight: 500;
}

/* Pagination */
.it-pagination {
  display: flex;
  justify-content: center;
  margin-top: 12px;
}

.it-pages {
  display: flex;
  align-items: center;
  gap: 4px;
}

.it-page-btn {
  min-width: 34px;
  height: 34px;
  padding: 0 8px;
  border: 1px solid var(--border);
  background: white;
  border-radius: var(--radius-sm);
  font-size: 13px;
  font-family: var(--font);
  font-weight: 500;
  color: var(--text);
  cursor: pointer;
  transition: all 0.15s;
  display: flex;
  align-items: center;
  justify-content: center;
}

.it-page-btn:hover:not(.disabled):not(.active) {
  background: var(--primary-light);
  border-color: var(--primary);
  color: var(--primary);
}

.it-page-btn.active {
  background: var(--primary);
  border-color: var(--primary);
  color: white;
  box-shadow: var(--shadow-sm);
}

.it-page-btn.disabled {
  opacity: 0.35;
  cursor: not-allowed;
}

.it-ellipsis {
  color: var(--text-muted);
  font-size: 13px;
  padding: 0 4px;
}

/* Boutons d'action uniformes */
/* ============================================
   BOUTONS D'ACTION — définition unique
   ============================================ */
.btn-action {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 5px 12px;
  border-radius: var(--radius-sm);
  font-size: 12px;
  font-weight: 500;
  font-family: var(--font);
  border: none;
  cursor: pointer;
  transition: all 0.15s;
  white-space: nowrap;
  height: 30px;
}
.btn-action:hover { transform: translateY(-1px); box-shadow: var(--shadow-sm); }
.btn-action:active { transform: translateY(0); }

.btn-edit   { background: #EEF2FF; color: #4F46E5; }
.btn-delete { background: #FEF2F2; color: #DC2626; }
.btn-view   { background: #F0FDF4; color: #16A34A; }
.btn-pdf    { background: #FFF7ED; color: #EA580C; }
.btn-primary-action { background: var(--color-primary); color: white; }

.btn-edit:hover   { background: #E0E7FF; }
.btn-delete:hover { background: #FEE2E2; }
.btn-view:hover   { background: #DCFCE7; }
.btn-pdf:hover    { background: #FFEDD5; }

/* btn-edit:hover inline — géré plus haut */
/* btn-delete:hover géré plus haut */
.btn-view:hover   { background: #DCFCE7; }
.btn-pdf:hover    { background: #FFEDD5; }
.btn-primary-action:hover { background: var(--primary-dark); }

/* Supprimer toutes les bordures des tableaux */
table.data-table,
.data-table-container table,
.table-container table {
  border: none !important;
  box-shadow: none !important;
}

table.data-table td,
table.data-table th,
.data-table-container td,
.data-table-container th {
  border-left: none !important;
  border-right: none !important;
  border-top: none !important;
  border-bottom: 1px solid #F0F4FF !important;
}

table.data-table thead th,
.data-table-container thead th {
  border-bottom: 2px solid rgba(255,255,255,0.2) !important;
}

/* Supprimer bordures conteneurs tableaux */
div[style*="border: 1px solid #e5e7eb"][style*="border-radius"][style*="overflow: hidden"],
div[style*="border: 1px solid #E0E4F2"][style*="border-radius"],
div[style*="border: 1px solid var(--color-border)"] {
  border: none !important;
  box-shadow: var(--shadow-sm) !important;
}

/* Pas de curseur dans les tableaux */
table.data-table tr,
table.data-table td,
table.data-table th {
  cursor: default !important;
}

/* Supprimer barre de scroll sur les tableaux */
.it-wrapper,
.data-table-container,
.table-container {
  overflow: hidden !important;
}

table.data-table {
  overflow: hidden !important;
}

/* ============================================
   BARRE DE CONTRÔLE MODULES
   ============================================ */
.module-toolbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 16px;
  flex-wrap: wrap;
  gap: 12px;
}

.module-toolbar-left {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.module-search {
  padding: 7px 12px !important;
  border: 1px solid #D1D9EE !important;
  border-radius: var(--radius-lg) !important;
  font-size: 13px !important;
  width: 200px !important;
  background: white !important;
  font-family: var(--font) !important;
  transition: border-color 0.2s !important;
}

.module-search:focus {
  outline: none !important;
  border-color: #B0BDD8 !important;
  box-shadow: none !important;
}

.module-select {
  padding: 7px 12px !important;
  border: 1px solid #D1D9EE !important;
  border-radius: var(--radius-sm) !important;
  font-size: 13px !important;
  background: white !important;
  font-family: var(--font) !important;
  cursor: pointer !important;
}

.module-count {
  font-size: 12px;
  color: var(--text-muted);
  font-weight: 500;
}

/* ============================================
   BARRE DE CONTRÔLE UNIFORME
   ============================================ */
.ctrl-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 16px;
  flex-wrap: wrap;
  gap: 10px;
  background: linear-gradient(110deg, rgba(95,143,224,0.08), rgba(182,154,248,0.08));
  border-radius: var(--radius);
  padding: 12px 16px;
}

.ctrl-bar-left {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.ctrl-search-wrap {
  display: flex;
  align-items: center;
  gap: 7px;
  background: white;
  border: 1px solid #D8DFF0;
  border-radius: var(--radius-sm);
  padding: 0 12px;
  height: 36px;
  transition: border-color 0.2s;
}

.ctrl-search-wrap:focus-within {
  border-color: #5F8FE0;
}

.ctrl-search-icon {
  color: #9CA3B8;
  flex-shrink: 0;
}

.ctrl-search {
  border: none !important;
  outline: none !important;
  box-shadow: none !important;
  background: transparent !important;
  font-size: 13px !important;
  font-family: var(--font) !important;
  color: var(--text) !important;
  width: 180px !important;
  padding: 0 !important;
  height: auto !important;
}

.ctrl-select {
  height: 36px !important;
  padding: 0 10px !important;
  border: 1px solid #D8DFF0 !important;
  border-radius: var(--radius-sm) !important;
  font-size: 13px !important;
  font-family: var(--font) !important;
  background: white !important;
  color: var(--text) !important;
  cursor: pointer !important;
  outline: none !important;
}

.ctrl-select:focus {
  border-color: #5F8FE0 !important;
}

.ctrl-count {
  font-size: 12px;
  color: var(--text-muted);
  font-weight: 600;
  white-space: nowrap;
}

/* Bouton primary uniforme */
.btn.btn-primary {
  height: 36px !important;
  padding: 0 16px !important;
  font-size: 13px !important;
  font-family: var(--font) !important;
  font-weight: 600 !important;
  border-radius: var(--radius-sm) !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  border: none !important;
  cursor: pointer !important;
  transition: all 0.15s !important;
}

/* ============================================
   RELIEF PROFESSIONNEL - REFONTE COMPLÈTE
   ============================================ */

/* App layout */
.app-container, #app-container, .app-layout {
  background: #EEF2FB !important;
}

/* Sidebar ombre forte */
.sidebar {
  box-shadow: 6px 0 30px rgba(95,143,224,0.18), 2px 0 8px rgba(0,0,0,0.07) !important;
  z-index: 100 !important;
}

/* Item actif sidebar - indicateur fort */
.nav-item.active {
  background: linear-gradient(90deg, rgba(95,143,224,0.18), rgba(182,154,248,0.10)) !important;
  color: #3B6FCC !important;
  font-weight: 700 !important;
  box-shadow: none !important;
}

.nav-item.active::before {
  content: '' !important;
  position: absolute !important;
  left: -16px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: 4px !important;
  height: 65% !important;
  background: linear-gradient(180deg, #5F8FE0, #B69AF8) !important;
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0 !important;
}

.nav-item {
  position: relative !important;
}

/* En-tête page */
.page-header, .content-header, .top-bar, .header-bar {
  background: white !important;
  box-shadow: 0 2px 12px rgba(95,143,224,0.10), 0 1px 3px rgba(0,0,0,0.05) !important;
  border-bottom: none !important;
  padding: 12px 24px !important;
  border-radius: var(--radius) !important;
  margin-bottom: 8px !important;
}

/* Zone contenu principale */
.content-card {
  background: white !important;
  border-radius: var(--radius-lg) !important;
  box-shadow: 0 4px 24px rgba(95,143,224,0.10), 0 1px 4px rgba(0,0,0,0.05) !important;
  border: none !important;
  margin: 12px !important;
  padding: 20px !important;
}

/* Barre onglets */
.submenu-bar, .sub-nav, .tabs-bar {
  border-radius: var(--radius) !important;
  box-shadow: 0 4px 12px rgba(95,143,224,0.25) !important;
}

/* Tableau - ombre douce */
.data-table-container, .table-container {
  background: white !important;
  border-radius: var(--radius) !important;
  box-shadow: 0 2px 16px rgba(95,143,224,0.08), 0 1px 4px rgba(0,0,0,0.04) !important;
  border: none !important;
  overflow: visible !important;
  padding-bottom: 4px !important;
}

/* Badges améliorés */
.status-badge {
  padding: 4px 10px !important;
  border-radius: var(--radius-lg) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: 0.02em !important;
}

.status-badge.pending {
  background: #FFF3CD !important;
  color: #B45309 !important;
  border: 1px solid #FDE68A !important;
}

.status-badge.locked {
  background: #FEE2E2 !important;
  color: #DC2626 !important;
  border: 1px solid #FECACA !important;
}

.status-badge.completed {
  background: #DCFCE7 !important;
  color: #16A34A !important;
  border: 1px solid #BBF7D0 !important;
}

/* Barre ctrl fond */
.ctrl-bar {
  box-shadow: 0 2px 8px rgba(95,143,224,0.08) !important;
}

/* Header title */
.module-title, .page-title, h1.title {
  font-size: 24px !important;
  font-weight: 800 !important;
  background: linear-gradient(90deg, #5F8FE0, #B69AF8) !important;
  -webkit-background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  background-clip: text !important;
}

/* ============================================
   ANGLES DROITS - STYLE PROFESSIONNEL
   ============================================ */
.nav-item.active::before {
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0 !important;
}


/* ============================================
   INTENDIA — DESIGN BOOST : INTENSITÉ & PROFONDEUR
   ============================================ */

/* --- Fond app --- */
body {
  background: #E8EDF8 !important;
}

/* --- Sidebar très léger bleu→violet --- */
.sidebar, aside.sidebar {
  background: linear-gradient(180deg, #EEF3FC 0%, #F0EBFF 100%) !important;
  box-shadow: 4px 0 24px rgba(95,143,224,0.12), 2px 0 8px rgba(0,0,0,0.05) !important;
  border-right: none !important;
}

.sidebar .nav-item {
  color: #1E2A4A !important;
}

.sidebar .nav-item:hover {
  background: rgba(95,143,224,0.12) !important;
  color: #1E3A5F !important;
}

.sidebar .nav-item.active {
  background: linear-gradient(90deg, rgba(95,143,224,0.18), rgba(182,154,248,0.12)) !important;
  color: #3B6FCC !important;
}

.sidebar .nav-icon {
  background: rgba(95,143,224,0.10) !important;
}

.sidebar .nav-item.active .nav-icon {
  background: rgba(95,143,224,0.22) !important;
}

.sidebar .nav-item.active::before {
  background: linear-gradient(180deg, #5F8FE0, #B69AF8) !important;
}

#current-username {
  color: #1E2A4A !important;
}

.sidebar-footer, .sidebar-footer * { /* overridden */ }

.btn-logout { /* overridden */ }

.btn-logout:hover { /* overridden */ }

/* --- Bouton déconnexion --- */
.btn-logout { /* overridden */ }
.btn-logout:hover { /* overridden */ }

/* --- Top bar --- */
.top-bar, .page-header, .content-header, .header-bar {
  background: #FFFFFF !important;
  border-radius: var(--radius) !important;
  box-shadow: 0 2px 16px rgba(95,143,224,0.10), 0 1px 4px rgba(0,0,0,0.05) !important;
  margin-bottom: 10px !important;
  border: 1px solid rgba(95,143,224,0.10) !important;
}

.page-title h1 {
  color: #1A2342 !important;
  font-weight: 800 !important;
  letter-spacing: -0.3px !important;
}

/* --- Avatar utilisateur --- */
.user-avatar {
  background: linear-gradient(135deg, #5F8FE0, #B69AF8) !important;
  box-shadow: 0 2px 8px rgba(95,143,224,0.4) !important;
  border-radius: 999px !important;
}

.user-chip {
  background: rgba(95,143,224,0.07) !important;
  border: 1px solid rgba(95,143,224,0.15) !important;
  border-radius: 999px !important;
  padding: 4px 12px 4px 4px !important;
}

/* --- Barre sous-menus --- */
.submenu-bar {
  background: #5F8FE0 !important;
  border-radius: var(--radius) !important;
  box-shadow: 0 4px 20px rgba(59,111,204,0.35), 0 2px 8px rgba(0,0,0,0.10) !important;
  margin-bottom: 12px !important;
  padding: 8px 12px !important;
}

.submenu-item {
  color: rgba(255,255,255,0.80) !important;
  border-radius: var(--radius-sm) !important;
  font-size: 13.5px !important;
  font-weight: 500 !important;
}

.submenu-item:hover {
  background: rgba(255,255,255,0.15) !important;
  color: #FFFFFF !important;
}

.submenu-item.active {
  background: rgba(255,255,255,0.22) !important;
  color: #FFFFFF !important;
  font-weight: 700 !important;
  font-size: 13.5px !important;
  box-shadow: 0 2px 8px rgba(0,0,0,0.15) !important;
}

/* --- Content card --- */
.content-card {
  background: #FFFFFF !important;
  border-radius: var(--radius-lg) !important;
  box-shadow: 0 4px 32px rgba(95,143,224,0.10), 0 1px 4px rgba(0,0,0,0.05) !important;
  border: 1px solid rgba(95,143,224,0.09) !important;
  margin: 0 !important;
  padding: 20px !important;
}

/* --- En-têtes de tableaux — blanc bleuté, texte violet --- */
.data-table thead,
table thead {
  background: #F0EBFF !important;
}

.data-table thead th,
table thead th {
  background: transparent !important;
  color: #3B6FCC !important;
  font-weight: 700 !important;
  font-family: 'DM Sans', var(--font) !important;
  letter-spacing: 0.04em !important;
  text-transform: uppercase !important;
  font-size: 11.5px !important;
  border: none !important;
  padding: 12px 16px !important;
}

.data-table thead th:last-child,
table thead th:last-child {
  border-radius: 0 var(--radius) 0 0 !important;
}

.data-table thead th:first-child,
table thead th:first-child {
  border-radius: var(--radius) 0 0 0 !important;
}

.data-table,
table {
  border-radius: var(--radius) !important;
  overflow: hidden !important;
  border-collapse: collapse !important;
}

/* --- Lignes tableaux --- */
.data-table tbody tr:nth-child(even),
table tbody tr:nth-child(even) {
  background: rgba(95,143,224,0.03) !important;
}

.data-table tbody tr:hover,
table tbody tr:hover {
  background: rgba(95,143,224,0.07) !important;
}

/* --- Boutons primaires --- */
.btn-primary, button.btn-primary {
  background: linear-gradient(135deg, #3B6FCC, #5F8FE0) !important;
  border: none !important;
  box-shadow: 0 2px 12px rgba(59,111,204,0.30) !important;
  color: #FFFFFF !important;
  font-weight: 600 !important;
}

.btn-primary:hover, button.btn-primary:hover {
  background: linear-gradient(135deg, #2D5BB8, #4B7FD0) !important;
  box-shadow: 0 4px 20px rgba(59,111,204,0.45) !important;
  transform: translateY(-1px) !important;
}

/* --- Badges statuts --- */
.badge-success, .status-ok {
  background: rgba(22,163,74,0.12) !important;
  color: #15803D !important;
  border: 1px solid rgba(22,163,74,0.25) !important;
}

.badge-danger, .status-rupture {
  background: rgba(220,38,38,0.10) !important;
  color: #B91C1C !important;
  border: 1px solid rgba(220,38,38,0.20) !important;
}

.badge-warning, .status-warning {
  background: rgba(217,119,6,0.10) !important;
  color: #B45309 !important;
  border: 1px solid rgba(217,119,6,0.20) !important;
}

/* --- Pagination --- */
.it-page-btn {
  border-radius: var(--radius-sm) !important;
  border: 1px solid rgba(95,143,224,0.25) !important;
  color: #3B6FCC !important;
  font-weight: 600 !important;
}

.it-page-btn.active {
  background: linear-gradient(135deg, #3B6FCC, #5F8FE0) !important;
  color: #FFFFFF !important;
  border-color: transparent !important;
  box-shadow: 0 2px 8px rgba(59,111,204,0.35) !important;
}

.it-page-btn:hover:not(.active):not(.disabled) {
  background: rgba(95,143,224,0.10) !important;
}

/* --- Inputs focus --- */
input:focus, select:focus, textarea:focus {
  border-color: #5F8FE0 !important;
  box-shadow: 0 0 0 3px rgba(95,143,224,0.18) !important;
}

/* --- Ctrl bar (barre de recherche/tri) --- */
.ctrl-bar {
  background: linear-gradient(90deg, rgba(95,143,224,0.06), rgba(182,154,248,0.04)) !important;
  border: 1px solid rgba(95,143,224,0.12) !important;
  border-radius: var(--radius) !important;
  margin-bottom: 12px !important;
}

/* ============================================
   INTENDIA — RELIEF & PROFESSIONNALISME
   ============================================ */

/* Fond de page avec texture subtile */
body {
  background: #E8EDF8 !important;
  background-image: radial-gradient(circle at 20% 20%, rgba(95,143,224,0.06) 0%, transparent 50%),
                    radial-gradient(circle at 80% 80%, rgba(182,154,248,0.05) 0%, transparent 50%) !important;
}

/* Content card — ligne bleue en haut + ombre marquée */
.content-card {
  border-top: 3px solid #B69AF8 !important;
  box-shadow: 0 8px 32px rgba(95,143,224,0.12), 0 2px 8px rgba(0,0,0,0.06) !important;
}

/* Top bar — ombre plus présente */
.top-bar, .page-header, .content-header, .header-bar {
  box-shadow: 0 4px 20px rgba(95,143,224,0.13), 0 1px 4px rgba(0,0,0,0.06) !important;
}

/* Titre page — plus imposant */
.page-title h1 {
  font-size: 26px !important;
  font-weight: 800 !important;
  letter-spacing: -0.5px !important;
  color: #1A2342 !important;
}

/* Sidebar — ombre latérale plus marquée */
.sidebar, aside.sidebar {
  box-shadow: 6px 0 30px rgba(95,143,224,0.15), 2px 0 8px rgba(0,0,0,0.07) !important;
}

/* Hover lignes tableau — transition douce */
.data-table tbody tr,
table tbody tr {
  transition: background 0.15s ease !important;
}

.data-table tbody tr:hover,
table tbody tr:hover {
  background: rgba(95,143,224,0.06) !important;
  box-shadow: inset 3px 0 0 #B69AF8 !important;
}

/* Boutons — relief au hover */
.btn, button.btn, .btn-primary {
  transition: all 0.18s ease !important;
}

.btn:hover, button.btn:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 6px 18px rgba(95,143,224,0.25) !important;
}

.btn:active, button.btn:active {
  transform: translateY(0) !important;
}

/* Inputs — focus plus visible */
input:focus, select:focus, textarea:focus {
  border-color: #5F8FE0 !important;
  box-shadow: 0 0 0 3px rgba(95,143,224,0.15), 0 2px 8px rgba(95,143,224,0.10) !important;
}

/* Pagination — boutons avec relief */
.it-page-btn {
  transition: all 0.15s ease !important;
}

.it-page-btn:hover:not(.active):not(.disabled) {
  transform: translateY(-1px) !important;
  box-shadow: 0 3px 10px rgba(95,143,224,0.20) !important;
}

/* Barre submenu — ombre plus profonde */
.submenu-bar {
  box-shadow: 0 4px 20px rgba(95,143,224,0.25), 0 2px 6px rgba(0,0,0,0.08) !important;
}

/* Animation d'apparition du contenu */
.content-body {
  animation: fadeInUp 0.25s ease forwards;
}

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}


/* ============================================
   TABLEAUX — PLEINE LARGEUR & COLONNES RÉPARTIES
   ============================================ */

.data-table, table.data-table {
  width: 100% !important;
  table-layout: auto !important;
}



/* ============================================
   BADGES STATUT STOCK — version unique validée
   ============================================ */

.status-badge {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 5px !important;
  min-width: 110px !important;
  height: 26px !important;
  padding: 0 10px !important;
  border-radius: 999px !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  font-family: var(--font) !important;
  white-space: nowrap !important;
  letter-spacing: 0.01em !important;
}

/* Rupture — rouge pâle, texte bleu */
.status-badge.locked {
  background: #FEE2E2 !important;
  color: #3B6FCC !important;
  border: 1px solid #FECACA !important;
}
.status-badge.locked::before {
  content: "⚠️" !important;
  font-size: 11px !important;
}

/* Stock faible — orange pâle, texte bleu */
.status-badge.pending {
  background: #FEF3C7 !important;
  color: #3B6FCC !important;
  border: 1px solid #FDE68A !important;
}
.status-badge.pending::before {
  content: "📉" !important;
  font-size: 11px !important;
}

/* En stock — vert pâle, texte bleu */
.status-badge.completed {
  background: #D1FAE5 !important;
  color: #3B6FCC !important;
  border: 1px solid #A7F3D0 !important;
}
.status-badge.completed::before {
  content: "✅" !important;
  font-size: 11px !important;
}

/* ============================================
   RAPPORT — design unifié (Stock + Financement)
   ============================================ */
.rapport-titre {
  margin-bottom: 8px;
  font-size: 18px;
  font-weight: 700;
  color: #1A2342;
}

.rapport-desc {
  margin-bottom: 20px;
  color: #6B7280;
  font-size: 13px;
}

.rapport-filtres {
  margin-bottom: 24px;
  padding: 20px;
  background: #F7F8FC;
  border-radius: var(--radius);
  border: 1px solid #E0E4F2;
}

.rapport-filtres-titre {
  margin: 0 0 15px 0;
  font-size: 14px;
  font-weight: 600;
  color: #1F2933;
}

.rapport-grid-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 15px;
  margin-bottom: 15px;
}

.rapport-grid-3 {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 15px;
}

.rapport-btn {
  padding: 10px 24px;
  font-size: 14px;
}

/* En-tête onglet Personnel Appro */
.appro-personnel-header {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 16px;
  flex-wrap: wrap;
}



/* Formulaire personnel — caché par défaut */
#form-personnel-appro {
  display: none !important;
}
#form-personnel-appro.visible {
  display: block !important;
}

/* Formulaire personnel appro — caché par défaut TOUJOURS */
#form-personnel-appro {
  display: none !important;
}
#form-personnel-appro.visible {
  display: block !important;
}

/* ============================================
   SIDEBAR BLEUE — textes et items adaptés
   ============================================ */

/* Logo Intendia sur fond bleu */
.sidebar-logo {
  color: white !important;
}
.sidebar-logo .logo-title {
  color: white !important;
}
.sidebar-logo .logo-sub {
  color: rgba(255,255,255,0.7) !important;
}

/* Items du menu */
.nav-item {
  color: rgba(255,255,255,0.82) !important;
  border-radius: 10px !important;
  margin: 2px 8px !important;
  transition: all 0.2s ease !important;
}
.nav-item:hover {
  background: rgba(255,255,255,0.15) !important;
  color: white !important;
  transform: translateX(2px);
}
.nav-item.active {
  background: rgba(255,255,255,0.22) !important;
  color: white !important;
  box-shadow: 0 2px 8px rgba(0,0,0,0.2), inset 0 1px 0 rgba(255,255,255,0.2) !important;
  font-weight: 600 !important;
}
.nav-item .nav-icon {
  opacity: 0.85;
}
.nav-item.active .nav-icon {
  opacity: 1;
}

/* Séparateur */
.sidebar hr, .sidebar .nav-separator {
  border-color: rgba(255,255,255,0.15) !important;
}

/* Footer sidebar (connecté + déconnexion) */
.sidebar-footer { /* overridden */ }
.sidebar-footer .user-name {/* overridden */}
.sidebar-footer .user-role {/* overridden */}
.sidebar-footer .btn-logout { /* overridden */ }
.sidebar-footer .btn-logout:hover { /* overridden */ }

/* Titre section nav */
.nav-section-title {
  color: rgba(255,255,255,0.45) !important;
  font-size: 10px !important;
  letter-spacing: 0.08em !important;
}


/* ============================================
   SIDEBAR FOOTER - RÈGLE DÉFINITIVE (v2)
   ============================================ */
.sidebar-footer { /* overridden */ }

.btn-logout { /* overridden */ }

.btn-logout:hover { /* overridden */ }


/* ===== SIDEBAR FOOTER DÉFINITIF ===== */
.sidebar-footer {
  padding: 12px 10px !important;
  border-top: 1px solid #E2E5F0 !important;
  background: rgba(255,255,255,0.65) !important;
}
.btn-logout {
  width: 100% !important;
  padding: 8px 12px !important;
  background: white !important;
  border: 1px solid #E2E5F0 !important;
  border-radius: 8px !important;
  color: #6B7280 !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  cursor: pointer !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px !important;
  box-shadow: 0 1px 3px rgba(0,0,0,0.06) !important;
  transform: none !important;
}
.btn-logout:hover {
  background: #FEF2F2 !important;
  border-color: #FECACA !important;
  color: #DC2626 !important;
  box-shadow: 0 2px 8px rgba(220,38,38,0.12) !important;
  transform: none !important;
}

/* ============================================
   PAGES RAPPORT UNIFORMES
   ============================================ */
.rapport-label {
  display: block;
  font-size: 12px;
  font-weight: 600;
  color: var(--color-muted);
  margin-bottom: 6px;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.rapport-input,
.rapport-select {
  width: 100%;
  padding: 9px 12px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  font-family: var(--font);
  font-size: 13px;
  color: var(--color-text);
  background: white;
  box-sizing: border-box;
  transition: border-color .15s;
}
.rapport-input:focus,
.rapport-select:focus {
  outline: none;
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px rgba(95,143,224,.12);
}
.rapport-select { cursor: pointer; }

/* Tableau Contrats - colonnes adaptatives */
.contrats-table td, .contrats-table th {
  white-space: nowrap;
}
.contrats-table td:first-child {
  white-space: normal;
  min-width: 140px;
}
