    * {
      margin: 0;
      padding: 0;
      box-sizing: border-box;
    }

    :root {
      --navy: #1B2F5E;
      --green: #2E7D3A;
      --blue: #3A9FD4;
      --gold: #F5A623;
      --light: #F0F6FA;
      --white: #fff;
      --dark: #0D1B35;
      --text: #2C3E50;
      --gray: #6B7C93;
      --red: #e74c3c;
      --success: #27ae60;
      --warn: #f39c12;
      --purple: #7C3AED;
      --teal: #0EA5E9;
      --rose: #F43F5E;
      --sidebar-w: 260px;
      --ease-out-expo: cubic-bezier(.16, 1, .3, 1);
      --ease-spring: cubic-bezier(.34, 1.56, .64, 1);
      --shadow-sm: 0 2px 8px rgba(13, 27, 53, .08);
      --shadow-md: 0 8px 24px rgba(13, 27, 53, .12);
      --shadow-lg: 0 20px 60px rgba(13, 27, 53, .18);
      --radius-sm: 8px;
      --radius-md: 16px;
      --radius-lg: 24px;
      --gradient-brand: linear-gradient(135deg, var(--green), var(--blue));
      --gradient-gold: linear-gradient(135deg, #F5A623, #F97316);
      --gradient-dark: linear-gradient(160deg, #060e1a, #0D1B35);
      /* ═══ Z-INDEX SCALE ═══ */
      --z-search: 100;
      --z-nav: 500;
      --z-dropdown: 600;
      --z-chat: 700;
      --z-modal: 800;
      --z-notif: 900;
      --z-auth: 950;
      --z-config: 960;
      --z-scroll-bar: 990;
      --z-loader: 999;
    }

    html {
      scroll-behavior: smooth;
    }

    body {
      font-family: 'Inter', 'Raleway', sans-serif;
      color: var(--text);
      overflow-x: hidden;
      background: #fff;
      -webkit-tap-highlight-color: transparent;
      -webkit-text-size-adjust: 100%;
    }

    /* ══ PERF: Hover classes CSS (remplace inline onmouseover) ══ */
    .hover-lift {
      transition: transform .25s var(--ease-out-expo);
    }

    .hover-lift:hover {
      transform: translateY(-3px);
    }

    .hover-lift-scale {
      transition: transform .25s var(--ease-out-expo);
    }

    .hover-lift-scale:hover {
      transform: translateY(-3px) scale(1.02);
    }

    .hover-scale {
      transition: transform .25s var(--ease-spring);
    }

    .hover-scale:hover {
      transform: scale(1.05);
    }

    .hover-slide {
      transition: transform .25s var(--ease-out-expo), background .2s;
    }

    .hover-slide:hover {
      transform: translateX(8px);
    }

    .pillar-card-hover {
      background: rgba(255, 255, 255, .04);
      border: 1px solid rgba(255, 255, 255, .08);
      border-radius: 18px;
      padding: 28px;
      backdrop-filter: blur(4px);
      transition: transform .2s ease-out, background .2s ease-out;
    }

    .pillar-card-hover:hover {
      transform: translateY(-6px);
      background: rgba(255, 255, 255, .07);
    }

    nav,
    .chat-panel,
    .modal-overlay,
    .auth-overlay,
    .chat-fab,
    .stup,
    #wa-float {
      will-change: auto;
    }

    .rv {
      content-visibility: auto;
      contain-intrinsic-size: 0 400px;
    }

    section:not(.hero) {
      content-visibility: auto;
      contain-intrinsic-size: 0 500px;
    }

    .page:not(.active) {
      content-visibility: hidden;
    }

    /* Contain layout pour les listes longues */
    #demand-rows,
    .sg,
    #activitiesGrid,
    .testi-grid {
      contain: layout style;
    }

    /* Reduce paint areas */
    .scard,
    .exp-card,
    .acard,
    .chiffre-card {
      isolation: isolate;
    }

    /* Smooth scrolling uniquement si l'utilisateur ne préfère pas réduire les animations */
    @media(prefers-reduced-motion:reduce) {
      * {
        animation-duration: .01ms !important;
        transition-duration: .01ms !important;
      }
    }

    /* === GLOBAL SMOOTH TRANSITIONS (reduit a 2 proprietes pour la perf) === */
    a,
    button {
      transition: color .2s ease-out, background-color .2s ease-out;
    }

    input,
    select,
    textarea {
      transition: border-color .2s ease-out;
    }

    .page {
      animation: pageIn .4s var(--ease-out-expo);
    }

    @keyframes pageIn {
      from {
        opacity: 0;
        transform: translateY(12px);
      }

      to {
        opacity: 1;
        transform: translateY(0);
      }
    }

    /* ═══ SMOOTH SCROLL INDICATOR ═══ */
    body::before {
      content: '';
      position: fixed;
      top: 0;
      left: 0;
      height: 3px;
      background: linear-gradient(90deg, var(--green), var(--gold), var(--blue));
      z-index: var(--z-scroll-bar);
      width: var(--scroll-pct, 0%);
      transition: width .1s;
    }

    /* ═══════════ LOADER ═══════════ */
    #loader {
      position: fixed;
      inset: 0;
      background: linear-gradient(160deg, #060e1a, #0D1B35);
      z-index: var(--z-loader);
      display: flex;
      align-items: center;
      justify-content: center;
      flex-direction: column;
      gap: 20px;
      transition: opacity .6s, transform .6s;
    }

    #loader.hide {
      opacity: 0;
      transform: scale(1.05);
      pointer-events: none;
    }

    .ld-logo {
      font-family: 'Montserrat', sans-serif;
      font-weight: 900;
      font-size: 2.2rem;
      color: #fff;
      animation: ldPulse 2s ease-in-out infinite;
    }

    @keyframes ldPulse {

      0%,
      100% {
        opacity: 1;
      }

      50% {
        opacity: .7;
      }
    }

    .ld-logo span {
      color: var(--gold);
    }

    .ld-sub {
      color: rgba(255, 255, 255, .5);
      font-size: .85rem;
      letter-spacing: 2px;
      text-transform: uppercase;
    }

    .ld-bar {
      width: 220px;
      height: 3px;
      background: rgba(255, 255, 255, .15);
      border-radius: 2px;
      overflow: hidden;
      margin-top: 8px;
    }

    .ld-fill {
      height: 100%;
      background: linear-gradient(90deg, var(--green), var(--gold));
      animation: ld 1s ease forwards;
    }

    @keyframes ld {
      from {
        width: 0;
      }

      to {
        width: 100%;
      }
    }

    /* ═══════════ AUTH SCREENS ═══════════ */
    .auth-overlay {
      position: fixed;
      inset: 0;
      z-index: var(--z-auth);
      background: linear-gradient(160deg, var(--dark), var(--navy) 55%, #1a4570);
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 20px;
    }

    .auth-overlay.hidden {
      display: none;
    }

    .auth-box {
      background: rgba(255, 255, 255, .06);
      border: 1px solid rgba(255, 255, 255, .12);
      border-radius: 24px;
      padding: 30px;
      max-width: 440px;
      width: 100%;
      backdrop-filter: blur(20px);
      max-height: 92vh;
      overflow-y: auto;
    }

    .auth-logo {
      text-align: center;
      margin-bottom: 16px;
    }

    .auth-logo h2 {
      font-family: 'Montserrat', sans-serif;
      font-weight: 900;
      color: #fff;
      font-size: 1.4rem;
    }

    .auth-logo h2 span {
      color: var(--gold);
    }

    .auth-logo p {
      color: rgba(255, 255, 255, .5);
      font-size: .82rem;
      margin-top: 4px;
    }

    .auth-tabs {
      display: flex;
      gap: 4px;
      margin-bottom: 24px;
      background: rgba(255, 255, 255, .06);
      border-radius: 12px;
      padding: 4px;
    }

    .auth-tab {
      flex: 1;
      padding: 10px;
      text-align: center;
      border-radius: 10px;
      font-family: 'Montserrat', sans-serif;
      font-weight: 700;
      font-size: .82rem;
      color: rgba(255, 255, 255, .5);
      cursor: pointer;
      transition: all .2s;
      border: none;
      background: transparent;
    }

    .auth-tab.active {
      background: linear-gradient(135deg, var(--green), var(--blue));
      color: #fff;
    }

    .auth-form {
      display: none;
    }

    .auth-form.active {
      display: block;
    }

    .auth-field {
      margin-bottom: 12px;
    }

    .auth-field label {
      display: block;
      color: rgba(255, 255, 255, .7);
      font-size: .8rem;
      font-weight: 600;
      margin-bottom: 6px;
      letter-spacing: .3px;
    }

    .auth-field input,
    .auth-field select {
      width: 100%;
      padding: 12px 14px;
      background: rgba(255, 255, 255, .08);
      border: 1.5px solid rgba(255, 255, 255, .15);
      border-radius: 10px;
      color: #fff;
      font-family: 'Raleway', sans-serif;
      font-size: .9rem;
      outline: none;
      transition: border-color .2s;
    }

    .auth-field input::placeholder {
      color: rgba(255, 255, 255, .3);
    }

    .auth-field input:focus,
    .auth-field select:focus {
      border-color: var(--gold);
    }

    .auth-field select option {
      background: var(--navy);
      color: #fff;
    }

    .auth-btn {
      width: 100%;
      padding: 13px;
      background: linear-gradient(135deg, var(--green), var(--blue));
      color: #fff;
      border: none;
      border-radius: 12px;
      font-family: 'Montserrat', sans-serif;
      font-weight: 700;
      font-size: .9rem;
      cursor: pointer;
      transition: all .2s;
      margin-top: 8px;
    }

    .auth-btn:hover {
      transform: translateY(-2px);
      box-shadow: 0 8px 24px rgba(58, 159, 212, .35);
    }

    .auth-btn:disabled {
      opacity: .5;
      cursor: not-allowed;
      transform: none;
    }

    .auth-link {
      text-align: center;
      margin-top: 16px;
    }

    .auth-link a {
      color: var(--gold);
      font-size: .82rem;
      text-decoration: none;
      font-weight: 600;
      cursor: pointer;
    }

    .auth-link a:hover {
      text-decoration: underline;
    }

    .auth-error {
      background: rgba(231, 76, 60, .15);
      border: 1px solid rgba(231, 76, 60, .3);
      color: #ff6b6b;
      padding: 10px 14px;
      border-radius: 8px;
      font-size: .82rem;
      margin-bottom: 14px;
      display: none;
    }

    .auth-error.show {
      display: block;
    }

    .auth-success {
      background: rgba(39, 174, 96, .15);
      border: 1px solid rgba(39, 174, 96, .3);
      color: #6ED87A;
      padding: 10px 14px;
      border-radius: 8px;
      font-size: .82rem;
      margin-bottom: 14px;
      display: none;
    }

    .auth-success.show {
      display: block;
    }

    .auth-skip {
      text-align: center;
      margin-top: 20px;
      padding-top: 16px;
      border-top: 1px solid rgba(255, 255, 255, .1);
    }

    .auth-skip button {
      background: transparent;
      border: 1px solid rgba(255, 255, 255, .2);
      color: rgba(255, 255, 255, .6);
      padding: 8px 20px;
      border-radius: 20px;
      font-size: .8rem;
      font-weight: 600;
      cursor: pointer;
      transition: all .2s;
    }

    .auth-skip button:hover {
      border-color: var(--gold);
      color: var(--gold);
    }

    /* ═══════════ NAV ═══════════ */
    nav {
      position: fixed;
      top: 0;
      width: 100%;
      z-index: var(--z-nav);
      background: rgba(10, 22, 40, .88);
      backdrop-filter: blur(24px);
      -webkit-backdrop-filter: blur(24px);
      padding: 10px 4%;
      display: flex;
      align-items: center;
      justify-content: space-between;
      border-bottom: 1px solid rgba(255, 255, 255, .05);
      transition: all .35s var(--ease-out-expo);
      will-change: transform;
    }

    nav.scrolled {
      background: rgba(10, 22, 40, .96);
      box-shadow: 0 4px 30px rgba(0, 0, 0, .2);
    }

    nav.hidden-nav {
      transform: translateY(-100%);
    }

    .nav-brand {
      display: flex;
      align-items: center;
      gap: 10px;
      cursor: pointer;
      text-decoration: none;
    }

    .nav-circ {
      width: 38px;
      height: 38px;
      background: linear-gradient(135deg, var(--green), var(--blue));
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      font-family: 'Montserrat', sans-serif;
      font-weight: 900;
      font-size: 10px;
      color: #fff;
      overflow: hidden;
    }

    .nav-circ img {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }

    .nav-nm {
      font-family: 'Montserrat', sans-serif;
      font-weight: 800;
      font-size: 16px;
      color: #fff;
    }

    .nav-nm span {
      color: var(--gold);
    }

    .nav-links {
      display: flex;
      gap: 2px;
      list-style: none;
    }

    .nav-links a {
      color: rgba(255, 255, 255, .75);
      text-decoration: none;
      font-size: 12px;
      font-weight: 600;
      letter-spacing: .3px;
      padding: 6px 11px;
      border-radius: 18px;
      transition: all .2s;
      white-space: nowrap;
    }

    .nav-links a:hover,
    .nav-links a.active {
      color: #fff;
      background: rgba(255, 255, 255, .1);
    }

    .nav-links a.nav-devis {
      background: rgba(245, 166, 35, .18);
      color: var(--gold);
      border: 1px solid rgba(245, 166, 35, .35);
    }

    .nav-links a.nav-devis:hover {
      background: var(--gold);
      color: var(--navy);
    }

    .nav-actions {
      display: flex;
      gap: 8px;
      align-items: center;
    }

    .nav-user {
      display: flex;
      align-items: center;
      gap: 8px;
      background: rgba(255, 255, 255, .08);
      border: 1px solid rgba(255, 255, 255, .15);
      padding: 5px 12px 5px 8px;
      border-radius: 20px;
      cursor: pointer;
      transition: all .2s;
      position: relative;
    }

    .nav-user:hover {
      background: rgba(255, 255, 255, .14);
    }

    .nav-avatar {
      width: 26px;
      height: 26px;
      background: linear-gradient(135deg, var(--gold), var(--green));
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      font-family: 'Montserrat', sans-serif;
      font-weight: 800;
      font-size: 10px;
      color: #fff;
    }

    .nav-uname {
      color: rgba(255, 255, 255, .85);
      font-size: .78rem;
      font-weight: 600;
      max-width: 100px;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }

    .nav-role-badge {
      font-size: .6rem;
      background: rgba(245, 166, 35, .2);
      color: var(--gold);
      padding: 1px 6px;
      border-radius: 6px;
      font-weight: 700;
    }

    .nav-dropdown {
      position: fixed;
      top: 60px;
      right: 8px;
      background: var(--navy);
      border: 1px solid rgba(255, 255, 255, .12);
      border-radius: 12px;
      min-width: 200px;
      max-width: calc(100vw - 16px);
      padding: 6px;
      display: none;
      box-shadow: 0 12px 36px rgba(0, 0, 0, .4);
      z-index: 9998;
      max-height: 80vh;
      overflow-y: auto;
    }

    .nav-dropdown.open {
      display: block;
    }

    .nav-dropdown a {
      display: flex;
      align-items: center;
      gap: 8px;
      padding: 10px 12px;
      color: rgba(255, 255, 255, .8);
      font-size: .82rem;
      font-weight: 600;
      text-decoration: none;
      border-radius: 8px;
      transition: all .15s;
    }

    .nav-dropdown a:hover {
      background: rgba(255, 255, 255, .1);
      color: #fff;
    }

    .nav-dropdown hr {
      border: none;
      border-top: 1px solid rgba(255, 255, 255, .1);
      margin: 4px 0;
    }

    .btn-admin {
      background: rgba(255, 255, 255, .08);
      border: 1px solid rgba(255, 255, 255, .2);
      color: rgba(255, 255, 255, .8);
      padding: 6px 14px;
      border-radius: 18px;
      font-size: 11.5px;
      font-weight: 700;
      cursor: pointer;
      transition: all .2s;
    }

    .btn-admin:hover {
      background: rgba(255, 255, 255, .18);
      color: #fff;
    }

    .burger {
      display: none;
      flex-direction: column;
      gap: 5px;
      cursor: pointer;
    }

    .burger span {
      width: 24px;
      height: 2px;
      background: #fff;
      transition: all .3s;
      display: block;
    }

    /* ═══════════ PAGE SYSTEM ═══════════ */
    .page {
      display: none;
      min-height: 100vh;
    }

    .page.active {
      display: block;
    }

    /* ═══════════ HERO ═══════════ */
    .hero {
      min-height: 100vh;
      background: linear-gradient(165deg, rgba(10, 22, 40, .92), rgba(18, 34, 64, .88), rgba(26, 51, 85, .85)), url('https://images.unsplash.com/photo-1581094794329-c8112a89af12?w=1920&q=80');
      background-size: cover;
      background-position: center;
      display: flex;
      align-items: center;
      padding: 90px 4% 50px;
      position: relative;
      overflow: hidden;
    }

    .hero-grid {
      position: absolute;
      inset: 0;
      background-image: radial-gradient(circle at 1px 1px, rgba(255, 255, 255, .03) 1px, transparent 0);
      background-size: 40px 40px;
    }

    .hero::before {
      content: '';
      position: absolute;
      top: -30%;
      right: -15%;
      width: 600px;
      height: 600px;
      background: radial-gradient(circle, rgba(46, 125, 58, .15), transparent 70%);
      border-radius: 50%;
    }

    .hero::after {
      content: '';
      position: absolute;
      bottom: -20%;
      left: -10%;
      width: 500px;
      height: 500px;
      background: radial-gradient(circle, rgba(245, 166, 35, .1), transparent 70%);
      border-radius: 50%;
    }

    .orb {
      position: absolute;
      border-radius: 50%;
      filter: blur(90px);
      opacity: .11;
    }

    .o1 {
      width: 550px;
      height: 550px;
      background: var(--green);
      top: -120px;
      right: -80px;
      animation: ob 9s ease-in-out infinite paused;
    }

    .o2 {
      width: 320px;
      height: 320px;
      background: var(--blue);
      bottom: 0;
      left: -60px;
      animation: ob 6s ease-in-out infinite reverse paused;
    }

    .o3 {
      width: 220px;
      height: 220px;
      background: var(--gold);
      top: 38%;
      left: 42%;
      animation: ob 12s ease-in-out infinite paused;
    }

    .hero:hover .o1,
    .hero:hover .o2,
    .hero:hover .o3 {
      animation-play-state: running;
    }

    @keyframes ob {

      0%,
      100% {
        transform: translate(0, 0);
      }

      40% {
        transform: translate(18px, -25px);
      }

      70% {
        transform: translate(-12px, 15px);
      }
    }

    .hero-c {
      position: relative;
      z-index: 2;
      max-width: 680px;
    }

    .hero-badge {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      background: rgba(245, 166, 35, .1);
      border: 1px solid rgba(245, 166, 35, .3);
      color: var(--gold);
      padding: 6px 16px;
      border-radius: 20px;
      font-size: 11.5px;
      font-weight: 700;
      letter-spacing: .8px;
      text-transform: uppercase;
      margin-bottom: 24px;
      animation: fu .8s ease;
    }

    .hero-title {
      font-family: 'Montserrat', sans-serif;
      font-size: clamp(2rem, 5vw, 4rem);
      font-weight: 900;
      color: #fff;
      line-height: 1.1;
      margin-bottom: 20px;
      animation: fu .8s ease .15s both;
    }

    .hero-title .ac {
      color: var(--gold);
    }

    .hero-title .gr {
      color: #6ED87A;
    }

    .hero-sub {
      font-size: 1.05rem;
      color: rgba(255, 255, 255, .72);
      max-width: 560px;
      line-height: 1.82;
      margin-bottom: 32px;
      animation: fu .8s ease .3s both;
    }

    .hero-btns {
      display: flex;
      gap: 12px;
      flex-wrap: wrap;
      margin-bottom: 40px;
      animation: fu .8s ease .45s both;
    }

    .bp {
      background: linear-gradient(135deg, var(--green), var(--blue));
      color: #fff;
      padding: 13px 26px;
      border-radius: 30px;
      font-weight: 700;
      font-size: 13.5px;
      cursor: pointer;
      border: none;
      text-decoration: none;
      display: inline-flex;
      align-items: center;
      gap: 8px;
      transition: all .3s;
    }

    .bp:hover {
      transform: translateY(-3px);
      box-shadow: 0 10px 28px rgba(58, 159, 212, .4);
    }

    .bs {
      background: transparent;
      color: #fff;
      padding: 13px 26px;
      border-radius: 30px;
      font-weight: 600;
      font-size: 13.5px;
      cursor: pointer;
      border: 2px solid rgba(255, 255, 255, .28);
      text-decoration: none;
      display: inline-flex;
      align-items: center;
      gap: 8px;
      transition: all .3s;
    }

    .bs:hover {
      border-color: var(--gold);
      color: var(--gold);
    }

    .hero-contacts {
      display: flex;
      flex-wrap: wrap;
      gap: 10px;
      animation: fu .8s ease .6s both;
    }

    .cpill {
      display: flex;
      align-items: center;
      gap: 7px;
      background: rgba(255, 255, 255, .07);
      border: 1px solid rgba(255, 255, 255, .12);
      border-radius: 28px;
      padding: 7px 14px;
      color: rgba(255, 255, 255, .85);
      font-size: 12px;
      font-weight: 600;
      cursor: pointer;
      text-decoration: none;
      transition: all .2s;
    }

    .cpill:hover {
      background: rgba(255, 255, 255, .14);
    }

    .hero-right {
      position: absolute;
      right: 4%;
      top: 50%;
      transform: translateY(-50%);
      z-index: 2;
      display: flex;
      flex-direction: column;
      gap: 14px;
      animation: fl .8s ease .5s both;
    }

    @keyframes fl {
      from {
        opacity: 0;
        transform: translate(30px, -50%);
      }

      to {
        opacity: 1;
        transform: translate(0, -50%);
      }
    }

    .scard {
      background: rgba(255, 255, 255, .04);
      border: 1px solid rgba(255, 255, 255, .08);
      border-radius: 14px;
      padding: 20px 22px;
      text-align: left;
      transition: all .3s;
      cursor: pointer;
      backdrop-filter: blur(10px);
    }

    .scard:hover {
      background: rgba(255, 255, 255, .13);
      transform: translateX(-5px);
      box-shadow: 0 8px 32px rgba(245, 166, 35, .18);
    }

    .snum {
      font-family: 'Montserrat', sans-serif;
      font-size: 1.8rem;
      font-weight: 900;
      color: var(--gold);
    }

    .slbl {
      font-size: 10.5px;
      color: rgba(255, 255, 255, .58);
      text-transform: uppercase;
      letter-spacing: .5px;
    }

    @keyframes fu {
      from {
        opacity: 0;
        transform: translateY(22px);
      }

      to {
        opacity: 1;
        transform: translateY(0);
      }
    }

    /* ═══════════ SEARCH BAR ULTRA-MODERNE ═══════════ */
    .search-container {
      position: relative;
      transform: translateZ(0);
      transition: all .4s var(--ease-out-expo);
    }

    .search-container.focused {
      transform: scale(1.02);
    }

    .search-input {
      width: 100%;
      padding: 18px 60px 18px 24px;
      background: rgba(255, 255, 255, .08);
      backdrop-filter: blur(20px);
      -webkit-backdrop-filter: blur(20px);
      border: 2px solid rgba(255, 255, 255, .15);
      border-radius: 50px;
      color: #fff;
      font-size: 1rem;
      outline: none;
      transition: all .4s var(--ease-out-expo);
      box-shadow: 0 8px 32px rgba(0, 0, 0, .1);
      font-family: 'Raleway', sans-serif;
    }

    .search-input::placeholder {
      color: rgba(255, 255, 255, .6);
      font-weight: 500;
    }

    .search-input:focus {
      background: rgba(255, 255, 255, .12);
      border-color: var(--gold);
      box-shadow: 0 12px 48px rgba(245, 166, 35, .2), 0 0 0 4px rgba(245, 166, 35, .1);
      transform: scale(1.02);
    }

    .search-icon {
      position: absolute;
      right: 20px;
      top: 50%;
      transform: translateY(-50%);
      color: rgba(255, 255, 255, .7);
      pointer-events: none;
      transition: all .3s;
      z-index: 2;
    }

    .search-container.focused .search-icon {
      color: var(--gold);
      transform: translateY(-50%) scale(1.1);
    }

    .search-glow {
      position: absolute;
      inset: -2px;
      background: linear-gradient(45deg, var(--gold), var(--blue), var(--green));
      border-radius: 50px;
      opacity: 0;
      transition: opacity .3s;
      z-index: -1;
      filter: blur(8px);
    }

    .search-container.focused .search-glow {
      opacity: .3;
    }

    .search-results {
      margin-top: 16px;
      max-height: 0;
      overflow: hidden;
      transition: all .4s var(--ease-out-expo);
      position: absolute;
      top: 100%;
      left: 0;
      right: 0;
      z-index: 1000;
    }

    .search-results.show {
      max-height: 500px;
    }

    /* ═══════════ SECTIONS ═══════════ */
    section {
      padding: 75px 4%;
    }

    .sh {
      text-align: center;
      margin-bottom: 55px;
    }

    .stag {
      display: inline-block;
      background: rgba(46, 125, 58, .1);
      color: var(--green);
      padding: 4px 14px;
      border-radius: 13px;
      font-size: 11px;
      font-weight: 700;
      letter-spacing: .9px;
      text-transform: uppercase;
      margin-bottom: 10px;
      border: 1px solid rgba(46, 125, 58, .2);
    }

    .stitle {
      font-family: 'Montserrat', sans-serif;
      font-size: clamp(1.6rem, 3.2vw, 2.5rem);
      font-weight: 800;
      color: var(--navy);
      margin-bottom: 12px;
    }

    .sline {
      width: 50px;
      height: 4px;
      background: linear-gradient(90deg, var(--green), var(--blue));
      border-radius: 2px;
      margin: 0 auto 16px;
    }

    .sdesc {
      color: var(--gray);
      font-size: .97rem;
      max-width: 560px;
      margin: 0 auto;
      line-height: 1.8;
    }

    /* ═══════════ ABOUT ═══════════ */
    .about {
      background: linear-gradient(135deg, #f8fafc, #edf2f8);
    }

    .about-in {
      display: grid;
      grid-template-columns: 1fr 1.1fr;
      gap: 55px;
      align-items: center;
      max-width: 1080px;
      margin: 0 auto;
    }

    .acard {
      background: linear-gradient(148deg, #0a1628, #122240);
      border-radius: 22px;
      padding: 34px;
      color: #fff;
      position: relative;
      overflow: hidden;
      box-shadow: 0 20px 60px rgba(10, 22, 40, .2);
    }

    .acard-pat {
      position: absolute;
      inset: 0;
      opacity: .04;
      background-image: radial-gradient(circle, #fff 1px, transparent 1px);
      background-size: 18px 18px;
    }

    .acard-in {
      position: relative;
      z-index: 1;
    }

    .alogo {
      width: 64px;
      height: 64px;
      background: linear-gradient(135deg, var(--green), var(--blue));
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      font-family: 'Montserrat', sans-serif;
      font-weight: 900;
      font-size: 14px;
      color: #fff;
      margin-bottom: 16px;
    }

    .acard h3 {
      font-family: 'Montserrat', sans-serif;
      font-size: 1.28rem;
      font-weight: 800;
      margin-bottom: 8px;
    }

    .acard p {
      opacity: .78;
      line-height: 1.75;
      font-size: .91rem;
      margin-bottom: 14px;
    }

    .atags {
      display: flex;
      flex-wrap: wrap;
      gap: 7px;
    }

    .atg {
      background: rgba(255, 255, 255, .1);
      border: 1px solid rgba(255, 255, 255, .2);
      color: #fff;
      padding: 3px 11px;
      border-radius: 11px;
      font-size: 11px;
      font-weight: 600;
    }

    .afloat {
      position: absolute;
      bottom: -10px;
      right: 18px;
      background: var(--gold);
      color: var(--navy);
      padding: 9px 15px;
      border-radius: 11px;
      font-family: 'Montserrat', sans-serif;
      font-weight: 800;
      font-size: .8rem;
      box-shadow: 0 7px 22px rgba(245, 166, 35, .4);
    }

    .atext h2 {
      font-family: 'Montserrat', sans-serif;
      font-size: clamp(1.4rem, 2.4vw, 1.9rem);
      font-weight: 800;
      color: var(--navy);
      margin: 10px 0 14px;
    }

    .atext p {
      color: var(--gray);
      line-height: 1.8;
      margin-bottom: 16px;
      font-size: .95rem;
    }

    .pillars {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 10px;
      margin-top: 18px;
    }

    .pill {
      background: #fff;
      border-left: 4px solid var(--green);
      padding: 12px 14px;
      border-radius: 0 12px 12px 0;
      box-shadow: 0 3px 12px rgba(0, 0, 0, .04);
      transition: all .3s;
    }

    .pill:hover {
      transform: translateX(6px);
      box-shadow: 0 6px 20px rgba(0, 0, 0, .08);
    }

    .pill h4 {
      font-family: 'Montserrat', sans-serif;
      font-size: .85rem;
      font-weight: 700;
      color: var(--navy);
    }

    .pill p {
      font-size: .78rem;
      color: var(--gray);
      margin-top: 2px;
    }

    /* ═══════════ EXPERTISE CARDS ═══════════ */
    .exp-card {
      background: #fff;
      border-radius: 18px;
      padding: 28px;
      border: 1px solid #e6eef8;
      box-shadow: 0 4px 20px rgba(0, 0, 0, .04);
      transition: all .35s;
      position: relative;
      overflow: hidden;
    }

    .exp-card::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      height: 4px;
      background: linear-gradient(90deg, var(--acc, var(--blue)), transparent);
    }

    .exp-card:hover {
      transform: translateY(-8px);
      box-shadow: 0 20px 50px rgba(0, 0, 0, .08);
    }

    .exp-icon {
      width: 52px;
      height: 52px;
      border-radius: 14px;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 24px;
      margin-bottom: 16px;
      box-shadow: 0 6px 16px rgba(0, 0, 0, .1);
    }

    .exp-card h3 {
      font-family: 'Montserrat', sans-serif;
      font-size: .95rem;
      font-weight: 800;
      color: var(--navy);
      margin-bottom: 14px;
      line-height: 1.35;
    }

    .exp-card ul {
      list-style: none;
      margin: 0;
      padding: 0;
    }

    .exp-card ul li {
      font-size: .84rem;
      color: var(--text);
      padding: 6px 0;
      line-height: 1.65;
      border-bottom: 1px solid #f3f6fa;
      display: flex;
      align-items: flex-start;
      gap: 8px;
    }

    .exp-card ul li:last-child {
      border-bottom: none;
    }

    .exp-card ul li::before {
      content: '›';
      color: var(--acc, var(--blue));
      font-weight: 900;
      font-size: 1.1rem;
      flex-shrink: 0;
      line-height: 1.4;
    }

    .exp-card ul li strong {
      color: var(--navy);
      font-weight: 700;
    }

    /* ═══════════ SERVICES ═══════════ */
    .sg {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
      gap: 20px;
      max-width: 1180px;
      margin: 0 auto;
    }

    .sc {
      background: #fff;
      border-radius: 18px;
      padding: 26px;
      border: 1px solid #e6eef8;
      box-shadow: 0 4px 20px rgba(0, 0, 0, .04);
      transition: all .35s;
      cursor: pointer;
      position: relative;
      overflow: hidden;
    }

    .sc::after {
      content: '';
      position: absolute;
      bottom: 0;
      left: 0;
      right: 0;
      height: 3px;
      background: linear-gradient(90deg, var(--green), var(--blue), var(--gold));
      transform: scaleX(0);
      transform-origin: left;
      transition: transform .35s;
    }

    .sc:hover {
      transform: translateY(-8px);
      box-shadow: 0 20px 50px rgba(27, 47, 94, .1);
    }

    .sc:hover::after {
      transform: scaleX(1);
    }

    .si {
      width: 52px;
      height: 52px;
      border-radius: 14px;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 22px;
      margin-bottom: 14px;
      box-shadow: 0 4px 12px rgba(0, 0, 0, .08);
    }

    .sc h3 {
      font-family: 'Montserrat', sans-serif;
      font-size: .95rem;
      font-weight: 700;
      color: var(--navy);
      margin-bottom: 8px;
      line-height: 1.35;
    }

    .sc p.sshort {
      color: var(--gray);
      font-size: .855rem;
      line-height: 1.7;
      margin-bottom: 10px;
    }

    .sexp {
      display: none;
      margin-top: 12px;
      padding-top: 12px;
      border-top: 1px solid #edf2f8;
    }

    .sexp p {
      color: var(--text);
      font-size: .855rem;
      line-height: 1.75;
      margin-bottom: 10px;
    }

    .sexp ul {
      list-style: none;
      margin-bottom: 10px;
    }

    .sexp ul li {
      font-size: .83rem;
      color: var(--text);
      padding: 3px 0;
      display: flex;
      align-items: flex-start;
      gap: 7px;
    }

    .sexp ul li::before {
      content: '✓';
      color: var(--green);
      font-weight: 700;
      flex-shrink: 0;
    }

    .sbx {
      background: var(--light);
      border-radius: 9px;
      padding: 11px 13px;
      margin-bottom: 10px;
    }

    .sbx h5 {
      font-family: 'Montserrat', sans-serif;
      font-size: .8rem;
      font-weight: 700;
      color: var(--navy);
      margin-bottom: 7px;
    }

    .stog {
      display: flex;
      align-items: center;
      gap: 5px;
      color: var(--blue);
      font-size: .81rem;
      font-weight: 700;
      cursor: pointer;
      background: none;
      border: none;
      padding: 0;
      transition: color .2s;
    }

    .sarw {
      transition: transform .3s;
      display: inline-block;
    }

    .sc.open .sarw {
      transform: rotate(180deg);
    }

    .why-b {
      display: inline-flex;
      align-items: center;
      gap: 5px;
      background: rgba(46, 125, 58, .09);
      color: var(--green);
      padding: 3px 9px;
      border-radius: 7px;
      font-size: .75rem;
      font-weight: 700;
      margin-bottom: 7px;
    }

    /* ═══════════ ACTIVITIES ═══════════ */
    .act-grid {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
      gap: 22px;
      max-width: 1180px;
      margin: 0 auto;
    }

    .act-card {
      background: #fff;
      border-radius: 16px;
      overflow: hidden;
      border: 1px solid #e6eef8;
      box-shadow: 0 3px 16px rgba(0, 0, 0, .055);
      transition: all .3s;
    }

    .act-card:hover {
      transform: translateY(-5px);
      box-shadow: 0 14px 38px rgba(27, 47, 94, .12);
    }

    .act-img {
      width: 100%;
      height: 200px;
      object-fit: cover;
      background: var(--light);
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 3rem;
      color: var(--gray);
    }

    .act-body {
      padding: 20px;
    }

    .act-cat {
      display: inline-block;
      background: rgba(46, 125, 58, .1);
      color: var(--green);
      padding: 3px 10px;
      border-radius: 8px;
      font-size: .72rem;
      font-weight: 700;
      letter-spacing: .5px;
      text-transform: uppercase;
      margin-bottom: 8px;
    }

    .act-card h3 {
      font-family: 'Montserrat', sans-serif;
      font-size: 1rem;
      font-weight: 700;
      color: var(--navy);
      margin-bottom: 8px;
    }

    .act-card p {
      color: var(--gray);
      font-size: .85rem;
      line-height: 1.7;
    }

    .act-date {
      color: var(--gray);
      font-size: .75rem;
      margin-top: 10px;
      display: flex;
      align-items: center;
      gap: 5px;
    }

    /* ═══════════ CERTIF SCROLL ═══════════ */
    .croll {
      background: var(--light);
      padding: 34px 0;
      overflow: hidden;
    }

    .ctrack {
      display: flex;
      gap: 20px;
      animation: cslide 22s linear infinite;
      width: max-content;
    }

    @keyframes cslide {
      from {
        transform: translateX(0);
      }

      to {
        transform: translateX(-50%);
      }
    }

    .citem {
      background: #fff;
      border: 1px solid #dde8f2;
      border-radius: 10px;
      padding: 12px 20px;
      display: flex;
      align-items: center;
      gap: 9px;
      white-space: nowrap;
      flex-shrink: 0;
      box-shadow: 0 2px 8px rgba(0, 0, 0, .04);
      cursor: pointer;
      transition: all .2s;
    }

    .citem:hover {
      transform: scale(1.05);
      box-shadow: 0 4px 16px rgba(0, 0, 0, .1);
    }

    .citem span {
      font-family: 'Montserrat', sans-serif;
      font-weight: 700;
      font-size: .84rem;
      color: var(--navy);
    }

    .cbadge {
      background: linear-gradient(135deg, var(--green), var(--blue));
      color: #fff;
      padding: 2px 9px;
      border-radius: 5px;
      font-size: .72rem;
      font-weight: 700;
    }

    /* ═══════════ PROCESS ═══════════ */
    .proc-steps {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
      gap: 0;
      max-width: 880px;
      margin: 0 auto;
      position: relative;
    }

    .proc-steps::before {
      content: '';
      position: absolute;
      top: 36px;
      left: 12%;
      right: 12%;
      height: 2px;
      background: linear-gradient(90deg, var(--green), var(--blue));
      opacity: .22;
    }

    .ps {
      text-align: center;
      padding: 22px 18px;
      z-index: 1;
      position: relative;
      background: rgba(255, 255, 255, .5);
      border-radius: 16px;
      border: 1px solid #e6eef8;
      transition: all .3s;
    }

    .ps:hover {
      transform: translateY(-6px);
      box-shadow: 0 12px 30px rgba(27, 47, 94, .1);
    }

    .psn {
      width: 68px;
      height: 68px;
      border-radius: 50%;
      background: linear-gradient(145deg, #1a2744, #2a5b8a);
      color: #fff;
      font-family: 'Montserrat', sans-serif;
      font-weight: 900;
      font-size: 1.4rem;
      display: flex;
      align-items: center;
      justify-content: center;
      margin: 0 auto 14px;
      box-shadow: 0 7px 22px rgba(27, 47, 94, .2);
      transition: all .3s;
    }

    .ps:hover .psn {
      transform: scale(1.08);
      box-shadow: 0 10px 28px rgba(27, 47, 94, .3);
    }

    .ps h4 {
      font-family: 'Montserrat', sans-serif;
      font-weight: 700;
      color: var(--navy);
      margin-bottom: 7px;
      font-size: .9rem;
    }

    .ps p {
      color: var(--gray);
      font-size: .82rem;
      line-height: 1.6;
    }

    /* ═══════════ DEVIS PAGE ═══════════ */
    .devis-hero {
      background: linear-gradient(135deg, var(--navy), #1a4570);
      padding: 80px 4% 50px;
      text-align: center;
    }

    .devis-hero h1 {
      font-family: 'Montserrat', sans-serif;
      font-weight: 900;
      font-size: clamp(1.8rem, 4vw, 3rem);
      color: #fff;
      margin-bottom: 14px;
    }

    .devis-hero p {
      color: rgba(255, 255, 255, .72);
      font-size: 1rem;
      max-width: 580px;
      margin: 0 auto 30px;
    }

    .devis-tabs {
      display: flex;
      justify-content: center;
      gap: 12px;
      flex-wrap: wrap;
    }

    .dtab {
      padding: 11px 22px;
      border-radius: 25px;
      font-family: 'Montserrat', sans-serif;
      font-weight: 700;
      font-size: 13px;
      cursor: pointer;
      transition: all .3s;
      border: 2px solid rgba(255, 255, 255, .25);
      color: rgba(255, 255, 255, .8);
      background: transparent;
    }

    .dtab.active,
    .dtab:hover {
      background: #fff;
      color: var(--navy);
      border-color: #fff;
    }

    .devis-body {
      background: var(--light);
      padding: 50px 4%;
    }

    .form-container {
      max-width: 900px;
      margin: 0 auto;
    }

    .form-sect {
      display: none;
    }

    .form-sect.active {
      display: block;
    }

    .form-card {
      background: #fff;
      border-radius: 20px;
      padding: 32px;
      box-shadow: 0 4px 20px rgba(0, 0, 0, .07);
      margin-bottom: 24px;
    }

    .form-card h3 {
      font-family: 'Montserrat', sans-serif;
      font-weight: 800;
      color: var(--navy);
      font-size: 1.1rem;
      margin-bottom: 6px;
      display: flex;
      align-items: center;
      gap: 8px;
    }

    .form-card .fc-desc {
      color: var(--gray);
      font-size: .85rem;
      margin-bottom: 22px;
    }

    .form-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 14px;
    }

    .fg {
      display: flex;
      flex-direction: column;
      gap: 5px;
    }

    .fg label {
      font-size: 12.5px;
      font-weight: 700;
      color: var(--navy);
      letter-spacing: .25px;
    }

    .fg .opt-badge {
      font-size: 10px;
      font-weight: 600;
      color: var(--gray);
      background: #f0f0f0;
      padding: 1px 6px;
      border-radius: 4px;
      margin-left: 5px;
    }

    .fg input,
    .fg textarea,
    .fg select {
      padding: 11px 14px;
      border: 1.5px solid #dde5f0;
      border-radius: 10px;
      font-family: 'Raleway', sans-serif;
      font-size: 16px;
      color: var(--text);
      background: #fff;
      outline: none;
      transition: border-color .2s, box-shadow .2s;
      width: 100%;
      min-height: 44px;
    }

    .fg input:focus,
    .fg textarea:focus,
    .fg select:focus {
      border-color: var(--blue);
      box-shadow: 0 0 0 3px rgba(58, 159, 212, .12);
    }

    .fg textarea {
      resize: vertical;
      min-height: 80px;
    }

    .fg.full {
      grid-column: 1/-1;
    }

    .radio-group {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
    }

    .radio-btn {
      display: flex;
      align-items: center;
      gap: 7px;
      padding: 8px 14px;
      border: 1.5px solid #dde5f0;
      border-radius: 9px;
      cursor: pointer;
      transition: all .2s;
      font-size: .85rem;
      font-weight: 600;
      color: var(--text);
      background: #fff;
    }

    .radio-btn:has(input:checked),
    .radio-btn.selected {
      border-color: var(--green);
      background: rgba(46, 125, 58, .07);
      color: var(--green);
    }

    .radio-btn input {
      display: none;
    }

    .form-actions {
      display: flex;
      gap: 12px;
      margin-top: 22px;
      justify-content: flex-end;
      flex-wrap: wrap;
    }

    .btn-submit {
      background: linear-gradient(135deg, var(--green), var(--blue));
      color: #fff;
      padding: 12px 28px;
      border: none;
      border-radius: 12px;
      font-family: 'Montserrat', sans-serif;
      font-weight: 700;
      font-size: .88rem;
      cursor: pointer;
      transition: all .2s;
      display: flex;
      align-items: center;
      gap: 8px;
    }

    .btn-submit:hover {
      transform: translateY(-2px);
      box-shadow: 0 8px 22px rgba(58, 159, 212, .3);
    }

    .btn-clear {
      background: #fff;
      border: 1.5px solid #dde5f0;
      color: var(--gray);
      padding: 12px 20px;
      border-radius: 12px;
      font-weight: 600;
      font-size: .85rem;
      cursor: pointer;
      transition: all .2s;
    }

    .btn-clear:hover {
      border-color: var(--red);
      color: var(--red);
    }

    .upload-drop {
      border: 2px dashed #d0dbe8;
      border-radius: 13px;
      padding: 24px;
      text-align: center;
      cursor: pointer;
      transition: all .2s;
      background: rgba(240, 246, 250, .5);
    }

    .upload-drop:hover {
      border-color: var(--blue);
      background: rgba(58, 159, 212, .04);
    }

    .upload-drop .ud-icon {
      font-size: 28px;
      display: block;
      margin-bottom: 6px;
    }

    .upload-drop p {
      color: var(--gray);
      font-size: .83rem;
    }

    .upload-list {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      margin-top: 10px;
    }

    .success-screen {
      display: none;
      background: #fff;
      border-radius: 20px;
      padding: 48px 32px;
      text-align: center;
      box-shadow: 0 4px 20px rgba(0, 0, 0, .07);
    }

    .success-screen .check {
      font-size: 56px;
      display: block;
      margin-bottom: 16px;
    }

    .success-screen h3 {
      font-family: 'Montserrat', sans-serif;
      font-weight: 800;
      color: var(--navy);
      font-size: 1.3rem;
      margin-bottom: 10px;
    }

    .success-screen p {
      color: var(--gray);
      font-size: .93rem;
      line-height: 1.7;
      margin-bottom: 22px;
    }

    .success-btns {
      display: flex;
      gap: 10px;
      justify-content: center;
      flex-wrap: wrap;
      margin-bottom: 16px;
    }

    .dl-btn {
      padding: 10px 18px;
      border-radius: 10px;
      font-weight: 700;
      font-size: .84rem;
      cursor: pointer;
      border: none;
      display: flex;
      align-items: center;
      gap: 6px;
      transition: all .2s;
      color: #fff;
    }

    .dl-btn:hover {
      transform: translateY(-2px);
    }

    .dl-pdf {
      background: #e74c3c;
    }

    .dl-word {
      background: #2980b9;
    }

    .dl-excel {
      background: #27ae60;
    }

    .send-actions {
      display: flex;
      gap: 8px;
      justify-content: center;
      flex-wrap: wrap;
    }

    .send-wa {
      background: #25D366;
      color: #fff;
      padding: 8px 14px;
      border-radius: 9px;
      text-decoration: none;
      font-weight: 700;
      font-size: .82rem;
      transition: all .2s;
      display: inline-flex;
      align-items: center;
      gap: 5px;
    }

    .send-wa:hover {
      background: #128C7E;
    }

    .send-email {
      background: var(--navy);
      color: #fff;
      padding: 8px 14px;
      border-radius: 9px;
      text-decoration: none;
      font-weight: 700;
      font-size: .82rem;
      display: inline-flex;
      align-items: center;
      gap: 5px;
    }

    .send-new {
      background: #fff;
      border: 1.5px solid #dde5f0;
      color: var(--navy);
      padding: 8px 14px;
      border-radius: 9px;
      font-weight: 700;
      font-size: .82rem;
      cursor: pointer;
    }

    /* ═══════════ CONTACT PAGE ═══════════ */
    .contact-page {
      padding: 90px 4% 60px;
      background: #fff;
    }

    .contact-inner {
      display: grid;
      grid-template-columns: 1fr 1.2fr;
      gap: 50px;
      max-width: 1020px;
      margin: 0 auto;
      align-items: start;
    }

    .ci h3 {
      font-family: 'Montserrat', sans-serif;
      font-size: 1.45rem;
      font-weight: 800;
      color: var(--navy);
      margin-bottom: 11px;
    }

    .ci>p {
      color: var(--gray);
      line-height: 1.8;
      margin-bottom: 22px;
      font-size: .94rem;
    }

    .cc {
      display: flex;
      align-items: flex-start;
      gap: 13px;
      margin-bottom: 16px;
    }

    .cico {
      width: 42px;
      height: 42px;
      border-radius: 11px;
      background: linear-gradient(135deg, var(--green), var(--blue));
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 18px;
      flex-shrink: 0;
    }

    .cc h4 {
      font-weight: 700;
      color: var(--navy);
      font-size: .9rem;
      margin-bottom: 2px;
    }

    .cc p,
    .cc a {
      color: var(--gray);
      font-size: .86rem;
      line-height: 1.6;
      text-decoration: none;
    }

    .cc a:hover {
      color: var(--blue);
    }

    .wa-btns {
      display: flex;
      flex-direction: column;
      gap: 7px;
      margin-top: 18px;
    }

    .wab {
      display: flex;
      align-items: center;
      gap: 9px;
      background: #25D366;
      color: #fff;
      padding: 10px 16px;
      border-radius: 11px;
      text-decoration: none;
      font-weight: 700;
      font-size: .85rem;
      transition: all .2s;
    }

    .wab:hover {
      background: #128C7E;
      transform: translateX(3px);
    }

    .wab.ml {
      background: var(--navy);
    }

    .wab.ml:hover {
      background: var(--blue);
    }

    /* ═══════════ ADMIN / DASHBOARD ═══════════ */
    .admin-hero {
      background: linear-gradient(135deg, var(--navy), var(--dark));
      padding: 76px 4% 28px;
    }

    .admin-hero h1 {
      font-family: 'Montserrat', sans-serif;
      font-weight: 900;
      font-size: clamp(1.5rem, 3vw, 2.2rem);
      color: #fff;
      margin-bottom: 6px;
    }

    .admin-hero p {
      color: rgba(255, 255, 255, .55);
      font-size: .88rem;
    }

    .admin-hero .admin-date {
      color: rgba(255, 255, 255, .35);
      font-size: .78rem;
      margin-top: 4px;
    }

    .admin-body {
      background: var(--light);
      padding: 30px 4%;
      min-height: 60vh;
    }

    .admin-tabs {
      display: flex;
      gap: 6px;
      flex-wrap: wrap;
      margin-bottom: 24px;
      padding-bottom: 14px;
      border-bottom: 1px solid #dde8f2;
    }

    .atab {
      padding: 9px 18px;
      border-radius: 10px;
      font-family: 'Montserrat', sans-serif;
      font-weight: 700;
      font-size: .8rem;
      cursor: pointer;
      transition: all .3s var(--ease-spring);
      border: 1.5px solid #dde5f0;
      background: #fff;
      color: var(--navy);
      display: flex;
      align-items: center;
      gap: 6px;
    }

    .atab:hover {
      transform: translateY(-2px);
      box-shadow: 0 4px 12px rgba(0, 0, 0, .08);
      border-color: var(--blue);
      color: var(--blue);
    }

    .atab.active {
      transform: translateY(-1px);
      background: linear-gradient(135deg, var(--green), var(--blue));
      color: #fff;
      border-color: transparent;
    }

    .atc {
      display: none;
      animation: fadeSlide .35s var(--ease-out-expo);
    }

    .atc.active {
      display: block;
    }

    @keyframes fadeSlide {
      from {
        opacity: 0;
        transform: translateY(10px);
      }

      to {
        opacity: 1;
        transform: translateY(0);
      }
    }

    /* Stats grid */
    .stats-grid {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
      gap: 12px;
      margin-bottom: 24px;
    }

    .stat-card {
      background: #fff;
      border-radius: 14px;
      padding: 18px;
      text-align: center;
      box-shadow: 0 2px 12px rgba(0, 0, 0, .04);
      border: 1px solid #e6eef8;
      transition: all .3s;
      cursor: pointer;
    }

    .stat-card:hover {
      transform: translateY(-4px);
      box-shadow: 0 8px 24px rgba(0, 0, 0, .08);
    }

    .stat-num {
      font-family: 'Montserrat', sans-serif;
      font-size: 1.6rem;
      font-weight: 900;
      color: var(--navy);
    }

    .stat-lbl {
      font-size: .75rem;
      color: var(--gray);
      margin-top: 2px;
      font-weight: 600;
    }

    /* Premium Stat Cards for AI Dashboard */
    .premium-stat-card {
      background: #fff;
      border-radius: 16px;
      padding: 24px;
      box-shadow: 0 4px 20px rgba(0, 0, 0, .06);
      border: 1px solid rgba(0, 0, 0, .04);
      transition: all .3s var(--ease-out-expo);
      position: relative;
      overflow: hidden;
    }

    .premium-stat-card::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      height: 3px;
      background: linear-gradient(90deg, var(--gold), var(--blue), var(--green));
      opacity: 0;
      transition: opacity .3s;
    }

    .premium-stat-card:hover::before {
      opacity: 1;
    }

    .premium-stat-card:hover {
      transform: translateY(-6px);
      box-shadow: 0 12px 40px rgba(0, 0, 0, .1);
    }

    /* Demand table */
    .demand-table {
      background: #fff;
      border-radius: 14px;
      box-shadow: 0 2px 10px rgba(0, 0, 0, .05);
      overflow: hidden;
      border: 1px solid #e6eef8;
    }

    .dt-bar {
      padding: 14px 18px;
      display: flex;
      align-items: center;
      gap: 10px;
      border-bottom: 1px solid #edf2f8;
      flex-wrap: wrap;
    }

    .dt-bar input {
      flex: 1;
      min-width: 180px;
      padding: 8px 12px;
      border: 1.5px solid #dde5f0;
      border-radius: 8px;
      font-size: .84rem;
      outline: none;
    }

    .dt-bar input:focus {
      border-color: var(--blue);
    }

    .filter-btn {
      padding: 5px 12px;
      border-radius: 7px;
      font-size: .75rem;
      font-weight: 700;
      cursor: pointer;
      border: 1.5px solid #dde5f0;
      background: #fff;
      color: var(--navy);
      transition: all .15s;
    }

    .filter-btn.active {
      background: var(--navy);
      color: #fff;
      border-color: var(--navy);
    }

    .dt-head {
      display: grid;
      grid-template-columns: 1.5fr 1.5fr 1.2fr 1fr .8fr .8fr;
      gap: 10px;
      padding: 10px 18px;
      background: var(--light);
      font-size: .74rem;
      font-weight: 700;
      color: var(--gray);
      text-transform: uppercase;
      letter-spacing: .4px;
    }

    .dt-row {
      display: grid;
      grid-template-columns: 1.5fr 1.5fr 1.2fr 1fr .8fr .8fr;
      gap: 10px;
      padding: 12px 18px;
      border-bottom: 1px solid #f3f6fa;
      font-size: .84rem;
      align-items: center;
      transition: background .15s;
    }

    .dt-row:hover {
      background: rgba(58, 159, 212, .03);
    }

    .dt-name {
      font-weight: 700;
      color: var(--navy);
    }

    .dt-small {
      font-size: .74rem;
      color: var(--gray);
      margin-top: 1px;
    }

    .sbadge {
      padding: 3px 9px;
      border-radius: 6px;
      font-size: .72rem;
      font-weight: 700;
      display: inline-block;
    }

    .badge-new {
      background: rgba(58, 159, 212, .12);
      color: var(--blue);
    }

    .badge-prog {
      background: rgba(245, 166, 35, .12);
      color: var(--gold);
    }

    .badge-done {
      background: rgba(39, 174, 96, .12);
      color: var(--success);
    }

    .badge-urgent {
      background: rgba(231, 76, 60, .12);
      color: var(--red);
    }

    .dt-actions {
      display: flex;
      gap: 4px;
    }

    .dt-act {
      padding: 4px 10px;
      border-radius: 6px;
      font-size: .74rem;
      font-weight: 700;
      cursor: pointer;
      border: none;
      transition: all .15s;
    }

    .dt-view {
      background: rgba(58, 159, 212, .1);
      color: var(--blue);
    }

    .dt-view:hover {
      background: var(--blue);
      color: #fff;
    }

    .dt-del {
      background: rgba(231, 76, 60, .1);
      color: var(--red);
    }

    .dt-del:hover {
      background: var(--red);
      color: #fff;
    }

    /* Editor */
    .editor-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 16px;
    }

    .editor-card {
      background: #fff;
      border-radius: 14px;
      padding: 22px;
      box-shadow: 0 2px 10px rgba(0, 0, 0, .05);
      border: 1px solid #e6eef8;
    }

    .editor-card h4 {
      font-family: 'Montserrat', sans-serif;
      font-weight: 700;
      color: var(--navy);
      margin-bottom: 14px;
      font-size: .92rem;
    }

    .ec-field {
      margin-bottom: 12px;
    }

    .ec-field label {
      display: block;
      font-size: .78rem;
      font-weight: 700;
      color: var(--gray);
      margin-bottom: 4px;
    }

    .ec-field input,
    .ec-field textarea {
      width: 100%;
      padding: 8px 12px;
      border: 1.5px solid #dde5f0;
      border-radius: 8px;
      font-family: 'Raleway', sans-serif;
      font-size: .85rem;
      outline: none;
    }

    .ec-field input:focus,
    .ec-field textarea:focus {
      border-color: var(--blue);
    }

    .ec-field textarea {
      min-height: 70px;
      resize: vertical;
    }

    .save-row {
      display: flex;
      align-items: center;
      gap: 10px;
      margin-top: 16px;
      padding-top: 14px;
      border-top: 1px solid #edf2f8;
    }

    .asave-btn {
      background: linear-gradient(135deg, var(--green), var(--blue));
      color: #fff;
      padding: 9px 20px;
      border: none;
      border-radius: 9px;
      font-family: 'Montserrat', sans-serif;
      font-weight: 700;
      font-size: .85rem;
      cursor: pointer;
      transition: all .2s;
    }

    .asave-btn:hover {
      opacity: .9;
      transform: translateY(-1px);
    }

    .save-ok {
      display: none;
      color: var(--success);
      font-size: .82rem;
      font-weight: 700;
    }

    .save-ok.show {
      display: inline-flex;
      align-items: center;
      gap: 4px;
    }

    /* Export */
    .export-card {
      background: #fff;
      border-radius: 14px;
      padding: 24px;
      box-shadow: 0 2px 10px rgba(0, 0, 0, .06);
      margin-bottom: 16px;
      border: 1px solid #e6eef8;
    }

    .export-card h4 {
      font-family: 'Montserrat', sans-serif;
      font-weight: 700;
      color: var(--navy);
      margin-bottom: 14px;
    }

    .export-btns {
      display: flex;
      gap: 10px;
      flex-wrap: wrap;
    }

    .exp-btn {
      display: flex;
      align-items: center;
      gap: 7px;
      padding: 10px 18px;
      border-radius: 10px;
      font-family: 'Montserrat', sans-serif;
      font-weight: 700;
      font-size: .84rem;
      cursor: pointer;
      border: none;
      transition: all .2s;
    }

    .exp-btn:hover {
      transform: translateY(-2px);
      opacity: .88;
    }

    .exp-pdf {
      background: #e74c3c;
      color: #fff;
    }

    .exp-word {
      background: #2980b9;
      color: #fff;
    }

    .exp-excel {
      background: #27ae60;
      color: #fff;
    }

    .exp-json {
      background: var(--navy);
      color: #fff;
    }

    /* ═══════════ INVOICE MODULE ═══════════ */
    .inv-form {
      background: #fff;
      border-radius: 16px;
      padding: 28px;
      box-shadow: 0 3px 16px rgba(0, 0, 0, .06);
      border: 1px solid #e6eef8;
      margin-bottom: 20px;
    }

    .inv-form h3 {
      font-family: 'Montserrat', sans-serif;
      font-weight: 800;
      color: var(--navy);
      font-size: 1rem;
      margin-bottom: 16px;
    }

    .inv-lines {
      margin: 16px 0;
    }

    .inv-line {
      display: grid;
      grid-template-columns: 2.5fr 1fr 1fr 1fr auto;
      gap: 10px;
      align-items: center;
      margin-bottom: 8px;
    }

    .inv-line input {
      padding: 8px 10px;
      border: 1.5px solid #dde5f0;
      border-radius: 7px;
      font-size: .84rem;
      outline: none;
    }

    .inv-line input:focus {
      border-color: var(--blue);
    }

    .inv-line-del {
      width: 30px;
      height: 30px;
      border-radius: 50%;
      border: none;
      background: rgba(231, 76, 60, .1);
      color: var(--red);
      cursor: pointer;
      font-size: 14px;
      font-weight: 700;
      transition: all .15s;
    }

    .inv-mv {
      width: 22px;
      height: 18px;
      border: 1px solid rgba(27, 47, 94, .15);
      background: rgba(27, 47, 94, .06);
      color: var(--navy);
      border-radius: 4px;
      cursor: pointer;
      font-size: 9px;
      font-weight: 900;
      transition: all .15s;
      padding: 0;
      line-height: 1;
      display: flex;
      align-items: center;
      justify-content: center;
    }

    .inv-mv:hover {
      background: var(--blue);
      color: #fff;
      border-color: var(--blue);
    }

    .inv-mv-w {
      border-color: rgba(255, 255, 255, .25);
      background: rgba(255, 255, 255, .1);
      color: #fff;
    }

    .inv-mv-w:hover {
      background: rgba(255, 255, 255, .3);
    }

    .inv-line-del:hover {
      background: var(--red);
      color: #fff;
    }

    .inv-add {
      display: flex;
      align-items: center;
      gap: 6px;
      color: var(--blue);
      font-weight: 700;
      font-size: .83rem;
      background: none;
      border: none;
      cursor: pointer;
      padding: 6px 0;
    }

    .inv-add:hover {
      color: var(--green);
    }

    /* ══ LIGNES ANALYSE (Physico-chimique / Biologique / Microbiologique) ══ */
    .inv-analyse-line {
      border-radius: 10px;
      padding: 10px 12px;
      margin: 6px 0;
      transition: box-shadow .15s;
    }

    .inv-analyse-line:hover {
      box-shadow: 0 2px 12px rgba(0, 0, 0, .06);
    }

    .inv-analyse-type-sel {
      padding: 3px 6px;
      border-radius: 5px;
      font-size: .68rem;
      font-weight: 700;
      cursor: pointer;
      max-width: 150px;
      outline: none;
      transition: all .15s;
    }

    .inv-analyse-type-sel:focus {
      outline: 2px solid rgba(58, 159, 212, .4);
    }

    .analyse-badge-physico        { background: #EBF6FC; color: #3A9FD4; font-weight: 700; font-size: .68rem; padding: 2px 7px; border-radius: 4px }
    .analyse-badge-biologique     { background: #E8F5E9; color: #2E7D3A; font-weight: 700; font-size: .68rem; padding: 2px 7px; border-radius: 4px }
    .analyse-badge-microbiologique{ background: #F3EFFE; color: #7C3AED; font-weight: 700; font-size: .68rem; padding: 2px 7px; border-radius: 4px }

    .inv-totals {
      background: var(--light);
      border-radius: 12px;
      padding: 18px;
      margin-top: 16px;
    }

    .inv-tot-row {
      display: flex;
      justify-content: space-between;
      padding: 5px 0;
      font-size: .88rem;
    }

    .inv-tot-row.total {
      font-family: 'Montserrat', sans-serif;
      font-weight: 800;
      font-size: 1.05rem;
      color: var(--navy);
      padding-top: 10px;
      border-top: 2px solid var(--navy);
      margin-top: 6px;
    }

    .inv-list-table {
      background: #fff;
      border-radius: 14px;
      box-shadow: 0 2px 10px rgba(0, 0, 0, .05);
      overflow: hidden;
      border: 1px solid #e6eef8;
    }

    .inv-row {
      display: grid;
      grid-template-columns: auto 1.5fr 1.5fr 1fr 1fr .8fr .6fr;
      gap: 8px;
      padding: 11px 16px;
      border-bottom: 1px solid #f3f6fa;
      font-size: .82rem;
      align-items: center;
    }

    .inv-row.head {
      background: var(--light);
      font-weight: 700;
      color: var(--gray);
      text-transform: uppercase;
      font-size: .72rem;
      letter-spacing: .4px;
    }

    /* ═══════════ NOTIFICATION BELL ═══════════ */
    .notif-bell {
      position: relative;
      width: 36px;
      height: 36px;
      border-radius: 50%;
      background: rgba(255, 255, 255, .08);
      border: 1px solid rgba(255, 255, 255, .15);
      display: flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
      transition: all .2s;
      color: #fff;
      font-size: 16px;
    }

    .notif-bell:hover {
      background: rgba(255, 255, 255, .18);
    }

    .notif-badge {
      position: absolute;
      top: -3px;
      right: -3px;
      width: 16px;
      height: 16px;
      background: var(--red);
      border-radius: 50%;
      font-size: .6rem;
      font-weight: 700;
      color: #fff;
      display: flex;
      align-items: center;
      justify-content: center;
      border: 2px solid var(--dark);
    }

    .notif-panel {
      position: fixed;
      top: 60px;
      right: 8px;
      width: min(360px, calc(100vw - 16px));
      background: var(--navy);
      border: 1px solid rgba(255, 255, 255, .12);
      border-radius: 14px;
      box-shadow: 0 14px 40px rgba(0, 0, 0, .4);
      display: none;
      z-index: 99100;
      overflow: hidden;
      max-height: 70vh;
    }

    .notif-panel #notif-list {
      max-height: 60vh;
      overflow-y: auto;
      -webkit-overflow-scrolling: touch;
      scrollbar-width: thin;
      scrollbar-color: rgba(255, 255, 255, .2) transparent;
    }

    .notif-panel.open {
      display: block;
    }

    .notif-head {
      padding: 12px 16px;
      border-bottom: 1px solid rgba(255, 255, 255, .1);
      display: flex;
      justify-content: space-between;
      align-items: center;
    }

    .notif-head h4 {
      color: #fff;
      font-family: 'Montserrat';
      font-weight: 700;
      font-size: .88rem;
    }

    .notif-item {
      padding: 12px 16px;
      border-bottom: 1px solid rgba(255, 255, 255, .06);
      cursor: pointer;
      transition: background .15s;
    }

    .notif-item:hover {
      background: rgba(255, 255, 255, .06);
    }

    .notif-item.unread {
      border-left: 3px solid var(--gold);
    }

    .notif-item p {
      color: rgba(255, 255, 255, .85);
      font-size: .78rem;
      line-height: 1.5;
    }

    .notif-item .ntime {
      color: rgba(255, 255, 255, .35);
      font-size: .68rem;
      margin-top: 3px;
    }

    .notif-empty {
      padding: 20px;
      text-align: center;
      color: rgba(255, 255, 255, .3);
      font-size: .82rem;
    }

    /* ═══════════ KANBAN PIPELINE ═══════════ */
    .kanban-board {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 14px;
      min-height: 400px;
    }

    .kanban-col {
      background: var(--light);
      border-radius: 14px;
      padding: 14px;
      min-height: 300px;
    }

    .kanban-col-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      margin-bottom: 12px;
    }

    .kanban-col-head h4 {
      font-family: 'Montserrat';
      font-weight: 700;
      font-size: .83rem;
      color: var(--navy);
    }

    .k-count {
      background: var(--navy);
      color: #fff;
      width: 22px;
      height: 22px;
      border-radius: 50%;
      font-size: .7rem;
      font-weight: 700;
      display: flex;
      align-items: center;
      justify-content: center;
    }

    .kcard {
      background: #fff;
      border-radius: 10px;
      padding: 12px;
      margin-bottom: 8px;
      box-shadow: 0 2px 8px rgba(0, 0, 0, .07);
      border-left: 4px solid var(--blue);
      cursor: pointer;
      transition: all .2s;
    }

    .kcard:hover {
      transform: translateY(-2px);
      box-shadow: 0 6px 18px rgba(0, 0, 0, .12);
    }

    .kcard-name {
      font-weight: 700;
      font-size: .82rem;
      color: var(--navy);
      margin-bottom: 4px;
    }

    .kcard-type {
      font-size: .72rem;
      color: var(--gray);
    }

    .kcard-date {
      font-size: .68rem;
      color: var(--gray);
      margin-top: 4px;
    }

    .kcard-actions {
      display: flex;
      gap: 4px;
      margin-top: 8px;
    }

    .kbtn {
      padding: 3px 8px;
      border-radius: 5px;
      font-size: .68rem;
      font-weight: 700;
      cursor: pointer;
      border: none;
      transition: all .15s;
    }

    .kbtn-prog {
      background: rgba(58, 159, 212, .15);
      color: var(--blue);
    }

    .kbtn-done {
      background: rgba(46, 125, 58, .15);
      color: var(--green);
    }

    .kbtn-view {
      background: rgba(27, 47, 94, .1);
      color: var(--navy);
    }

    /* ═══════════ TESTIMONIALS ═══════════ */
    .testi-section {
      background: linear-gradient(165deg, rgba(10, 22, 40, .93), rgba(18, 34, 64, .9)), url('https://images.unsplash.com/photo-1504307651254-35680f356dfd?w=1920&q=80');
      background-size: cover;
      background-position: center;
      padding: 75px 4%;
    }

    .testi-grid {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
      gap: 20px;
      max-width: 1180px;
      margin: 0 auto;
    }

    .tcard {
      background: rgba(255, 255, 255, .05);
      border: 1px solid rgba(255, 255, 255, .08);
      border-radius: 18px;
      padding: 26px;
      backdrop-filter: blur(12px);
      transition: all .35s;
    }

    .tcard:hover {
      background: rgba(255, 255, 255, .1);
      transform: translateY(-5px);
      box-shadow: 0 12px 30px rgba(0, 0, 0, .15);
    }

    .tcard-stars {
      color: var(--gold);
      font-size: 16px;
      margin-bottom: 12px;
      letter-spacing: 2px;
    }

    .tcard-text {
      color: rgba(255, 255, 255, .8);
      font-size: .9rem;
      line-height: 1.75;
      margin-bottom: 16px;
      font-style: italic;
    }

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

    .tcard-av {
      width: 40px;
      height: 40px;
      border-radius: 50%;
      background: linear-gradient(135deg, var(--gold), var(--green));
      display: flex;
      align-items: center;
      justify-content: center;
      font-family: 'Montserrat';
      font-weight: 800;
      font-size: 14px;
      color: #fff;
    }

    .tcard-info h5 {
      font-family: 'Montserrat';
      font-weight: 700;
      font-size: .85rem;
      color: #fff;
    }

    .tcard-info p {
      font-size: .75rem;
      color: rgba(255, 255, 255, .5);
    }

    /* ═══════════ STATS TREND ═══════════ */
    .stat-trend {
      font-size: .68rem;
      font-weight: 700;
      padding: 2px 6px;
      border-radius: 5px;
      margin-top: 4px;
      display: inline-block;
    }

    .trend-up {
      background: rgba(46, 125, 58, .15);
      color: var(--green);
    }

    .trend-down {
      background: rgba(231, 76, 60, .12);
      color: var(--red);
    }

    .trend-flat {
      background: rgba(107, 124, 147, .12);
      color: var(--gray);
    }

    /* ═══════════ PROFILE BADGE ═══════════ */
    .profile-level {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      padding: 4px 12px;
      border-radius: 20px;
      font-size: .75rem;
      font-weight: 700;
    }

    .level-bronze {
      background: rgba(205, 127, 50, .15);
      color: #cd7f32;
    }

    .level-silver {
      background: rgba(168, 168, 168, .15);
      color: #888;
    }

    .level-gold {
      background: rgba(245, 166, 35, .15);
      color: var(--gold);
    }

    .level-platinum {
      background: rgba(58, 159, 212, .15);
      color: var(--blue);
    }

    .activity-timeline {
      position: relative;
      padding-left: 22px;
    }

    .activity-timeline::before {
      content: '';
      position: absolute;
      left: 7px;
      top: 0;
      bottom: 0;
      width: 2px;
      background: var(--light);
    }

    .tl-item {
      position: relative;
      margin-bottom: 16px;
    }

    .tl-dot {
      position: absolute;
      left: -18px;
      top: 4px;
      width: 10px;
      height: 10px;
      border-radius: 50%;
      background: var(--green);
      border: 2px solid #fff;
      box-shadow: 0 0 0 2px var(--green);
    }

    .tl-content {
      background: var(--light);
      border-radius: 8px;
      padding: 10px 12px;
    }

    .tl-content p {
      font-size: .82rem;
      color: var(--text);
    }

    .tl-content .tl-date {
      font-size: .72rem;
      color: var(--gray);
      margin-top: 3px;
    }

    /* ═══════════ USER MANAGEMENT ═══════════ */
    .user-card {
      background: #fff;
      border-radius: 14px;
      padding: 18px;
      box-shadow: 0 2px 10px rgba(0, 0, 0, .05);
      border: 1px solid #e6eef8;
      display: flex;
      align-items: center;
      gap: 14px;
      margin-bottom: 10px;
    }

    .user-avatar {
      width: 44px;
      height: 44px;
      border-radius: 50%;
      background: linear-gradient(135deg, var(--green), var(--blue));
      display: flex;
      align-items: center;
      justify-content: center;
      font-family: 'Montserrat', sans-serif;
      font-weight: 800;
      font-size: 14px;
      color: #fff;
      flex-shrink: 0;
    }

    .user-info {
      flex: 1;
    }

    .user-info h4 {
      font-family: 'Montserrat', sans-serif;
      font-weight: 700;
      font-size: .9rem;
      color: var(--navy);
    }

    .user-info p {
      font-size: .78rem;
      color: var(--gray);
    }

    .user-role {
      padding: 4px 10px;
      border-radius: 7px;
      font-size: .72rem;
      font-weight: 700;
    }

    .role-admin {
      background: rgba(245, 166, 35, .12);
      color: var(--gold);
    }

    .role-collab {
      background: rgba(58, 159, 212, .12);
      color: var(--blue);
    }

    .role-client {
      background: rgba(46, 125, 58, .12);
      color: var(--green);
    }

    .user-actions {
      display: flex;
      gap: 6px;
    }

    .user-actions button {
      padding: 5px 12px;
      border-radius: 6px;
      font-size: .74rem;
      font-weight: 700;
      cursor: pointer;
      border: none;
      transition: all .15s;
    }

    /* ═══════════ MEDIA ═══════════ */
    .media-grid {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
      gap: 10px;
    }

    .mt {
      background: #fff;
      border-radius: 10px;
      padding: 8px;
      border: 1px solid #e8eef5;
      text-align: center;
      position: relative;
    }

    .mn {
      font-size: .74rem;
      font-weight: 600;
      color: var(--navy);
      margin-top: 6px;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }

    .mtyp {
      font-size: .68rem;
      color: var(--gray);
    }

    .mdl {
      position: absolute;
      top: 4px;
      right: 4px;
      width: 20px;
      height: 20px;
      border-radius: 50%;
      background: rgba(231, 76, 60, .8);
      color: #fff;
      border: none;
      cursor: pointer;
      font-size: 12px;
      opacity: 0;
      transition: opacity .2s;
    }

    .mt:hover .mdl {
      opacity: 1;
    }

    /* ═══════════ MODAL ═══════════ */
    .modal-overlay {
      position: fixed;
      inset: 0;
      background: rgba(13, 27, 53, .65);
      backdrop-filter: blur(6px);
      z-index: var(--z-modal);
      display: none;
      align-items: center;
      justify-content: center;
      padding: 20px;
    }

    .modal-overlay.open {
      display: flex;
    }

    .modal-box {
      background: #fff;
      border-radius: 20px;
      max-width: 720px;
      width: 100%;
      max-height: 85vh;
      overflow-y: auto;
      box-shadow: 0 30px 90px rgba(0, 0, 0, .3);
    }

    .modal-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 18px 24px;
      border-bottom: 1px solid #edf2f8;
    }

    .modal-head h3 {
      font-family: 'Montserrat', sans-serif;
      font-weight: 800;
      font-size: 1rem;
      color: var(--navy);
    }

    .modal-close {
      width: 32px;
      height: 32px;
      border-radius: 50%;
      border: none;
      background: var(--light);
      cursor: pointer;
      font-size: 16px;
      font-weight: 700;
      color: var(--gray);
      transition: all .2s;
    }

    .modal-close:hover {
      background: var(--red);
      color: #fff;
    }

    .modal-body {
      padding: 24px;
    }

    .modal-section {
      margin-bottom: 22px;
    }

    .modal-section h4 {
      font-family: 'Montserrat', sans-serif;
      font-weight: 700;
      font-size: .88rem;
      color: var(--navy);
      margin-bottom: 12px;
      display: flex;
      align-items: center;
      gap: 6px;
    }

    .modal-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 10px;
    }

    .mf {
      padding: 8px 12px;
      background: var(--light);
      border-radius: 8px;
    }

    .mf label {
      display: block;
      font-size: .72rem;
      font-weight: 700;
      color: var(--gray);
      text-transform: uppercase;
      letter-spacing: .3px;
      margin-bottom: 2px;
    }

    .mf-val {
      font-size: .84rem;
      color: var(--text);
      font-weight: 600;
    }

    .modal-actions {
      padding: 14px 24px;
      border-top: 1px solid #edf2f8;
      display: flex;
      gap: 8px;
      flex-wrap: wrap;
    }

    .ma-btn {
      padding: 8px 14px;
      border-radius: 8px;
      font-weight: 700;
      font-size: .78rem;
      cursor: pointer;
      border: none;
      transition: all .15s;
      text-decoration: none;
      display: inline-flex;
      align-items: center;
      gap: 4px;
    }

    .ma-save {
      background: var(--green);
      color: #fff;
    }

    .ma-pdf {
      background: #e74c3c;
      color: #fff;
    }

    .ma-word {
      background: #2980b9;
      color: #fff;
    }

    .ma-excel {
      background: #27ae60;
      color: #fff;
    }

    .ma-wa {
      background: #25D366;
      color: #fff;
    }

    .ma-email {
      background: var(--navy);
      color: #fff;
    }

    .status-select {
      padding: 7px 12px;
      border: 1.5px solid #dde5f0;
      border-radius: 8px;
      font-size: .85rem;
      outline: none;
    }

    /* ═══════════ CHATBOT ═══════════ */
    .chat-fab {
      position: fixed;
      bottom: 26px;
      right: 26px;
      width: 58px;
      height: 58px;
      background: linear-gradient(135deg, var(--green), var(--blue));
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
      z-index: 8000;
      box-shadow: 0 6px 24px rgba(46, 125, 58, .45);
      transition: all .3s;
      border: none;
    }

    .chat-fab:hover {
      transform: scale(1.12);
    }

    .chat-fab svg {
      width: 26px;
      height: 26px;
      stroke: #fff;
      fill: none;
      stroke-width: 2;
    }

    .chat-notif {
      position: fixed;
      bottom: 94px;
      right: 26px;
      background: var(--navy);
      color: #fff;
      padding: 9px 14px;
      border-radius: 12px 12px 0 12px;
      font-size: .8rem;
      font-weight: 600;
      z-index: 7999;
      animation: cnb 3.5s ease-in-out 2.5s both;
      opacity: 0;
      pointer-events: none;
      max-width: 200px;
      line-height: 1.4;
    }

    @keyframes cnb {
      0% {
        opacity: 0;
        transform: scale(.8);
      }

      20%,
      75% {
        opacity: 1;
        transform: scale(1);
      }

      100% {
        opacity: 0;
      }
    }

    .chat-panel {
      position: fixed;
      bottom: 26px;
      right: 26px;
      width: 370px;
      height: 570px;
      background: rgba(255, 255, 255, 0.1);
      backdrop-filter: blur(20px);
      -webkit-backdrop-filter: blur(20px);
      border-radius: 22px;
      box-shadow: 0 22px 70px rgba(0, 0, 0, .15), 0 0 0 1px rgba(255, 255, 255, 0.2);
      z-index: 8500;
      display: none;
      flex-direction: column;
      overflow: hidden;
      border: 1px solid rgba(255, 255, 255, 0.15);
      transition: all .4s var(--ease-out-expo);
    }

    .chat-panel.open {
      display: flex;
    }

    .chdr {
      background: linear-gradient(135deg, var(--navy), var(--blue));
      padding: 15px 17px;
      display: flex;
      align-items: center;
      gap: 11px;
    }

    .chav {
      width: 42px;
      height: 42px;
      background: rgba(255, 255, 255, .2);
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 20px;
      flex-shrink: 0;
    }

    .chinfo h4 {
      color: #fff;
      font-family: 'Montserrat', sans-serif;
      font-weight: 700;
      font-size: .9rem;
    }

    .chst {
      display: flex;
      align-items: center;
      gap: 4px;
      color: rgba(255, 255, 255, .68);
      font-size: .7rem;
      margin-top: 2px;
    }

    .chdot {
      width: 6px;
      height: 6px;
      background: #6ED87A;
      border-radius: 50%;
      animation: pls 2s infinite;
    }

    @keyframes pls {

      0%,
      100% {
        opacity: 1;
      }

      50% {
        opacity: .5;
      }
    }

    .chcl {
      margin-left: auto;
      background: rgba(255, 255, 255, .14);
      border: none;
      color: #fff;
      width: 28px;
      height: 28px;
      border-radius: 50%;
      cursor: pointer;
      font-size: 15px;
      display: flex;
      align-items: center;
      justify-content: center;
    }

    .chbody {
      flex: 1;
      overflow-y: auto;
      padding: 14px;
      display: flex;
      flex-direction: column;
      gap: 10px;
      background: rgba(255, 255, 255, 0.05);
      backdrop-filter: blur(15px);
      -webkit-backdrop-filter: blur(15px);
      border-radius: 0 0 22px 22px;
    }

    .chbody::-webkit-scrollbar {
      width: 3px;
    }

    .chbody::-webkit-scrollbar-thumb {
      background: #cdd8e8;
      border-radius: 2px;
    }

    .msg {
      max-width: 88%;
      display: flex;
      flex-direction: column;
      gap: 3px;
    }

    .msg.bot {
      align-self: flex-start;
    }

    .msg.user {
      align-self: flex-end;
    }

    .mb {
      padding: 9px 13px;
      border-radius: 14px;
      font-size: .84rem;
      line-height: 1.6;
    }

    .msg.bot .mb {
      background: rgba(255, 255, 255, 0.9);
      backdrop-filter: blur(10px);
      -webkit-backdrop-filter: blur(10px);
      color: var(--text);
      border: 1px solid rgba(255, 255, 255, 0.3);
      border-bottom-left-radius: 3px;
      box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08), 0 0 0 1px rgba(255, 255, 255, 0.2);
    }

    .msg.user .mb {
      background: linear-gradient(135deg, var(--navy), var(--blue));
      color: #fff;
      border-bottom-right-radius: 3px;
    }

    .mt2 {
      font-size: .66rem;
      color: var(--gray);
      padding: 0 4px;
    }

    .msg.user .mt2 {
      text-align: right;
    }

    .chsug {
      padding: 7px 11px;
      display: flex;
      flex-wrap: wrap;
      gap: 5px;
      border-top: 1px solid #edf2f8;
      background: #fff;
    }

    .csb {
      background: rgba(255, 255, 255, 0.15);
      backdrop-filter: blur(5px);
      -webkit-backdrop-filter: blur(5px);
      border: 1px solid rgba(255, 255, 255, 0.2);
      color: var(--navy);
      padding: 4px 11px;
      border-radius: 18px;
      font-size: .75rem;
      font-weight: 600;
      cursor: pointer;
      transition: all .2s;
    }

    .csb:hover {
      background: var(--navy);
      color: #fff;
      transform: scale(1.05);
    }

    .chin {
      padding: 10px 13px;
      border-top: 1px solid #edf2f8;
      display: flex;
      gap: 7px;
      background: #fff;
      align-items: flex-end;
    }

    .chinp {
      flex: 1;
      border: 1.5px solid #dde5f0;
      border-radius: 11px;
      padding: 8px 11px;
      font-family: 'Raleway', sans-serif;
      font-size: .84rem;
      resize: none;
      outline: none;
      min-height: 36px;
      max-height: 80px;
      transition: border-color .2s;
    }

    .chinp:focus {
      border-color: var(--blue);
    }

    .chsnd {
      background: linear-gradient(135deg, var(--green), var(--blue));
      border: none;
      border-radius: 9px;
      width: 36px;
      height: 36px;
      display: flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
      flex-shrink: 0;
    }

    .chsnd svg {
      width: 17px;
      height: 17px;
      stroke: #fff;
      fill: none;
      stroke-width: 2.5;
    }

    .typing {
      display: flex;
      gap: 4px;
      align-items: center;
      padding: 8px 12px;
    }

    .typing span {
      width: 6px;
      height: 6px;
      background: var(--gray);
      border-radius: 50%;
      animation: ty .9s ease-in-out infinite;
    }

    .typing span:nth-child(2) {
      animation-delay: .15s;
    }

    .typing span:nth-child(3) {
      animation-delay: .3s;
    }

    @keyframes ty {

      0%,
      80%,
      100% {
        transform: scale(.55);
        opacity: .5;
      }

      40% {
        transform: scale(1);
        opacity: 1;
      }
    }

    .chat-actions-row {
      display: flex;
      gap: 6px;
      margin-top: 5px;
      flex-wrap: wrap;
    }

    .cab {
      background: var(--light);
      border: 1px solid #dde5f0;
      color: var(--navy);
      padding: 5px 11px;
      border-radius: 7px;
      font-size: .76rem;
      font-weight: 600;
      cursor: pointer;
      transition: all .2s;
      border: none;
    }

    .cab:hover {
      background: var(--navy);
      color: #fff;
    }

    /* ═══════════ TOAST ═══════════ */
    .toast {
      position: fixed;
      top: 78px;
      right: 18px;
      background: var(--navy);
      color: #fff;
      padding: 14px 20px;
      border-radius: 14px;
      font-size: .85rem;
      font-weight: 600;
      transform: translateX(160%);
      transition: transform .5s var(--ease-spring);
      z-index: 99000;
      border-left: 4px solid var(--green);
      max-width: 340px;
      box-shadow: 0 12px 35px rgba(0, 0, 0, .25);
      backdrop-filter: blur(10px);
    }

    .toast.show {
      transform: translateX(0);
    }

    /* ═══════════ SCROLL TOP ═══════════ */
    .stup {
      position: fixed;
      bottom: 96px;
      right: 26px;
      width: 42px;
      height: 42px;
      background: linear-gradient(135deg, var(--green), var(--blue));
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
      opacity: 0;
      transform: translateY(16px);
      transition: all .3s;
      z-index: 7998;
      box-shadow: 0 4px 14px rgba(0, 0, 0, .18);
    }

    .stup.show {
      opacity: 1;
      transform: translateY(0);
    }

    .stup svg {
      stroke: #fff;
      width: 18px;
      height: 18px;
      fill: none;
      stroke-width: 2.5;
    }

    /* REVEAL */
    .rv {
      opacity: 0;
      transform: translateY(30px);
      transition: opacity .8s cubic-bezier(.16, 1, .3, 1), transform .8s cubic-bezier(.16, 1, .3, 1);
    }

    .rv.v {
      opacity: 1;
      transform: translateY(0);
    }

    /* ═══════════ CONFIG MODAL ═══════════ */
    .config-overlay {
      position: fixed;
      inset: 0;
      background: rgba(13, 27, 53, .7);
      backdrop-filter: blur(6px);
      z-index: var(--z-config);
      display: none;
      align-items: center;
      justify-content: center;
      padding: 20px;
    }

    .config-overlay.open {
      display: flex;
    }

    .config-box {
      background: #fff;
      border-radius: 20px;
      max-width: 520px;
      width: 100%;
      padding: 32px;
      max-height: 80vh;
      overflow-y: auto;
    }

    .config-box h3 {
      font-family: 'Montserrat', sans-serif;
      font-weight: 800;
      color: var(--navy);
      margin-bottom: 20px;
    }

    /* ═══════════ RESPONSIVE ═══════════ */
    @media(max-width:900px) {
      .hero-right {
        display: none;
      }

      .about-in,
      .contact-inner {
        grid-template-columns: 1fr;
      }

      .editor-grid {
        grid-template-columns: 1fr;
      }

      .modal-grid {
        grid-template-columns: 1fr;
      }

      .inv-line {
        grid-template-columns: 1fr 1fr;
        gap: 6px;
      }

      .inv-analyse-line .inv-analyse-type-sel { max-width: 100% }

      .inv-row {
        grid-template-columns: 1fr 1fr .6fr;
        font-size: .75rem;
        gap: 6px;
      }

      .proc-steps {
        grid-template-columns: 1fr 1fr;
      }

      footer>div>div:first-child>div {
        grid-template-columns: 1fr 1fr;
      }

      .admin-tabs {
        flex-wrap: wrap;
      }

      .atab {
        font-size: .72rem;
        padding: 7px 12px;
      }

      .kanban-board {
        grid-template-columns: 1fr 1fr;
      }
    }

    @media(max-width:680px) {
      .nav-links {
        display: none;
        position: fixed;
        top: 60px;
        left: 0;
        right: 0;
        background: rgba(10, 22, 40, .98);
        flex-direction: column;
        padding: 16px;
        gap: 0;
        z-index: 4999;
        backdrop-filter: blur(20px);
      }

      .nav-links.open {
        display: flex;
      }

      .nav-links li {
        border-bottom: 1px solid rgba(255, 255, 255, .07);
      }

      .nav-links a {
        display: block;
        padding: 11px 0;
        font-size: 13px;
      }

      .burger {
        display: flex;
      }

      .nav-uname {
        display: none;
      }

      .form-grid {
        grid-template-columns: 1fr;
      }

      .dt-head,
      .dt-row {
        grid-template-columns: 1fr;
        gap: 4px;
      }

      .chat-panel {
        width: calc(100vw - 16px);
        right: 8px;
        height: 80vh;
        bottom: 8px;
      }

      .devis-tabs {
        gap: 5px;
        flex-wrap: wrap;
      }

      .dtab {
        padding: 7px 12px;
        font-size: 11px;
      }

      .pillars,
      .sg,
      .act-grid,
      .testi-grid {
        grid-template-columns: 1fr;
      }

      .stats-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 8px;
      }

      .stat-card {
        padding: 12px;
      }

      .stat-num {
        font-size: 1.2rem;
      }

      .proc-steps {
        grid-template-columns: 1fr;
      }

      .hero {
        padding: 80px 4% 40px;
        min-height: auto;
      }

      .hero-title {
        font-size: clamp(1.5rem, 6vw, 2.2rem);
      }

      .hero-sub {
        font-size: .88rem;
      }

      .hero-btns {
        flex-direction: column;
      }

      .hero-btns button,
      .hero-btns a {
        width: 100%;
        text-align: center;
      }

      .hero-contacts {
        flex-direction: column;
      }

      .hero-contacts a {
        width: 100%;
        text-align: center;
        justify-content: center;
      }

      /* Barre de recherche ultra-moderne responsive */
      .search-input {
        font-size: .9rem;
        padding: 16px 55px 16px 20px;
      }

      .search-input::placeholder {
        font-size: .85rem;
      }

      section {
        padding: 40px 3%;
      }

      .sh {
        margin-bottom: 28px;
      }

      .stitle {
        font-size: clamp(1.2rem, 4vw, 1.8rem);
      }

      .exp-card {
        padding: 18px;
      }

      .inv-form {
        padding: 16px;
      }

      .form-card {
        padding: 16px;
      }

      .inv-row {
        grid-template-columns: 1fr;
        gap: 4px;
        padding: 12px;
        text-align: left;
      }

      .inv-row span {
        display: block;
      }

      .admin-hero h1 {
        font-size: clamp(1.3rem, 5vw, 2rem);
      }

      .admin-hero {
        padding: 80px 3% 30px;
      }

      .devis-hero {
        padding: 80px 3% 20px;
      }

      .devis-hero h1 {
        font-size: clamp(1.2rem, 5vw, 1.8rem);
      }

      .modal-box {
        width: 95vw;
        max-height: 90vh;
        margin: 2vh auto;
      }

      .kanban-board {
        grid-template-columns: 1fr;
      }

      .kanban-col {
        min-height: 120px;
      }

      .acard {
        padding: 22px;
      }

      .alogo {
        width: 50px;
        height: 50px;
        font-size: 12px;
      }

      .exp-icon {
        width: 44px;
        height: 44px;
        font-size: 20px;
      }

      footer {
        padding: 30px 3% 16px;
      }

      footer>div:first-child {
        grid-template-columns: 1fr;
        gap: 24px;
      }

      .auth-box {
        padding: 22px;
        max-width: 95vw;
      }

      .auth-field input {
        font-size: 14px;
        padding: 10px 12px;
      }

      .cpill {
        font-size: .72rem;
        padding: 5px 10px;
      }

      #global-back-btn {
        top: 66px;
        left: 8px;
      }

      #global-back-btn button {
        padding: 7px 14px;
        font-size: .75rem;
      }

      #visitor-bar>div {
        bottom: 80px !important;
        left: 8px !important;
      }

      #visitor-bar>div>* {
        font-size: .65rem !important;
        padding: 4px 8px !important;
      }
    }

    @media(max-width:400px) {
      .stats-grid {
        grid-template-columns: 1fr 1fr;
      }

      .hero-badge {
        font-size: 10px;
        padding: 4px 10px;
      }

      .stitle {
        font-size: 1.1rem;
      }

      nav {
        padding: 8px 3%;
      }

      .nav-brand strong {
        font-size: .92rem;
      }

      .hero-contacts {
        gap: 5px;
      }

      .cpill {
        font-size: .68rem;
        padding: 4px 8px;
      }

      .form-actions {
        flex-direction: column;
      }

      .form-actions button {
        width: 100%;
      }

      .inv-line {
        grid-template-columns: 1fr !important;
      }

      .inv-analyse-type-sel { max-width: 100% !important }

      .admin-tabs {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        padding-bottom: 4px;
      }

      .admin-tabs::-webkit-scrollbar {
        display: none;
      }

      .nav-circ {
        width: 34px;
        height: 34px;
      }
    }

    /* ═══════════════════════════════════════════
   V3 — NOUVELLES SECTIONS & AMÉLIORATIONS
═══════════════════════════════════════════ */

    /* ── Chiffres Clés ── */
    .chiffres-section {
      background: linear-gradient(135deg, var(--dark) 0%, var(--navy) 100%);
      padding: 70px 4%;
      position: relative;
      overflow: hidden;
    }

    .chiffres-section::before {
      content: '';
      position: absolute;
      inset: 0;
      background-image: radial-gradient(circle at 2px 2px, rgba(255, 255, 255, .04) 1px, transparent 0);
      background-size: 50px 50px;
    }

    .chiffres-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
      gap: 30px;
      max-width: 1100px;
      margin: 0 auto;
    }

    .chiffre-card {
      text-align: center;
      padding: 36px 24px;
      background: rgba(255, 255, 255, .05);
      border: 1px solid rgba(255, 255, 255, .1);
      border-radius: 20px;
      backdrop-filter: blur(10px);
      transition: all .35s var(--ease-out-expo);
    }

    .chiffre-card:hover {
      background: rgba(255, 255, 255, .1);
      transform: translateY(-8px);
      box-shadow: 0 20px 50px rgba(0, 0, 0, .3);
    }

    .chiffre-num {
      font-family: 'Montserrat', sans-serif;
      font-weight: 900;
      font-size: 3rem;
      background: linear-gradient(135deg, var(--gold), #F97316);
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      background-clip: text;
      line-height: 1;
      margin-bottom: 8px;
    }

    .chiffre-label {
      color: rgba(255, 255, 255, .75);
      font-size: .9rem;
      font-weight: 500;
      letter-spacing: .5px;
    }

    .chiffre-icon {
      font-size: 2rem;
      margin-bottom: 12px;
    }

    /* ── FAQ Interactive ── */
    .faq-section {
      background: var(--light);
      padding: 80px 4%;
    }

    .faq-container {
      max-width: 780px;
      margin: 0 auto;
      display: flex;
      flex-direction: column;
      gap: 14px;
    }

    .faq-item {
      background: #fff;
      border: 1.5px solid #e8eef6;
      border-radius: 16px;
      overflow: hidden;
      transition: all .3s var(--ease-out-expo);
    }

    .faq-item.open {
      border-color: var(--green);
      box-shadow: 0 6px 30px rgba(46, 125, 58, .12);
    }

    .faq-q {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 20px 24px;
      cursor: pointer;
      font-family: 'Montserrat', sans-serif;
      font-weight: 700;
      color: var(--navy);
      font-size: .95rem;
      gap: 16px;
      user-select: none;
    }

    .faq-q:hover {
      background: var(--light);
    }

    .faq-icon {
      width: 32px;
      height: 32px;
      border-radius: 50%;
      background: var(--light);
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 16px;
      transition: all .3s var(--ease-spring);
      flex-shrink: 0;
    }

    .faq-item.open .faq-icon {
      background: var(--green);
      color: #fff;
      transform: rotate(45deg);
    }

    .faq-a {
      max-height: 0;
      overflow: hidden;
      transition: max-height .4s var(--ease-out-expo);
    }

    .faq-item.open .faq-a {
      max-height: 500px;
    }

    .faq-a-inner {
      padding: 0 24px 20px;
      color: var(--gray);
      font-size: .9rem;
      line-height: 1.8;
      border-top: 1px solid #e8eef6;
    }

    .faq-search {
      width: 100%;
      padding: 14px 20px;
      border: 2px solid #e8eef6;
      border-radius: 50px;
      font-family: 'Inter', sans-serif;
      font-size: .9rem;
      outline: none;
      margin-bottom: 24px;
      transition: border-color .2s;
    }

    .faq-search:focus {
      border-color: var(--green);
    }

    /* ── Carrousel Partenaires ── */
    .partners-section {
      padding: 60px 4%;
      background: #fff;
      overflow: hidden;
    }

    .partners-track-wrap {
      overflow: hidden;
      position: relative;
    }

    .partners-track-wrap::before,
    .partners-track-wrap::after {
      content: '';
      position: absolute;
      top: 0;
      bottom: 0;
      width: 80px;
      z-index: 2;
    }

    .partners-track-wrap::before {
      left: 0;
      background: linear-gradient(90deg, #fff, transparent);
    }

    .partners-track-wrap::after {
      right: 0;
      background: linear-gradient(-90deg, #fff, transparent);
    }

    .partners-track {
      display: flex;
      gap: 40px;
      animation: partnerScroll 30s linear infinite;
      width: max-content;
    }

    .partners-track:hover {
      animation-play-state: paused;
    }

    @keyframes partnerScroll {
      from {
        transform: translateX(0);
      }

      to {
        transform: translateX(-50%);
      }
    }

    .partner-logo {
      display: flex;
      align-items: center;
      justify-content: center;
      background: var(--light);
      border: 1.5px solid #e8eef6;
      border-radius: 14px;
      padding: 14px 26px;
      min-width: 160px;
      height: 72px;
      font-family: 'Montserrat', sans-serif;
      font-weight: 800;
      font-size: .85rem;
      color: var(--navy);
      white-space: nowrap;
      transition: all .25s;
      cursor: default;
    }

    .partner-logo:hover {
      border-color: var(--green);
      box-shadow: 0 6px 24px rgba(46, 125, 58, .15);
      transform: scale(1.05);
    }

    /* ── Veille Réglementaire ── */
    .veille-widget {
      background: linear-gradient(135deg, #1a2744, #0f3460);
      border-radius: 20px;
      padding: 28px;
      margin: 20px 0;
      color: #fff;
    }

    .veille-widget h4 {
      font-family: 'Montserrat', sans-serif;
      font-weight: 800;
      font-size: 1rem;
      margin-bottom: 16px;
      display: flex;
      align-items: center;
      gap: 8px;
    }

    .veille-item {
      display: flex;
      align-items: flex-start;
      gap: 12px;
      padding: 12px;
      background: rgba(255, 255, 255, .06);
      border-radius: 12px;
      margin-bottom: 10px;
      border-left: 3px solid var(--gold);
      transition: background .2s;
    }

    .veille-item:hover {
      background: rgba(255, 255, 255, .1);
    }

    .veille-badge {
      background: rgba(245, 166, 35, .2);
      color: var(--gold);
      font-size: .68rem;
      font-weight: 700;
      padding: 2px 8px;
      border-radius: 6px;
      white-space: nowrap;
    }

    .veille-text {
      font-size: .8rem;
      color: rgba(255, 255, 255, .8);
      line-height: 1.6;
    }

    .veille-date {
      font-size: .68rem;
      color: rgba(255, 255, 255, .4);
      margin-top: 3px;
    }

    /* ── Signature Canvas ── */
    .signature-area {
      border: 2px dashed #dde5f0;
      border-radius: 14px;
      padding: 12px;
      margin-top: 16px;
      background: var(--light);
    }

    .signature-area label {
      display: block;
      font-size: .8rem;
      font-weight: 700;
      color: var(--gray);
      margin-bottom: 8px;
      text-transform: uppercase;
      letter-spacing: .5px;
    }

    .signature-canvas {
      width: 100%;
      height: 120px;
      background: #fff;
      border-radius: 10px;
      cursor: crosshair;
      display: block;
      touch-action: none;
      border: 1.5px solid #e8eef6;
    }

    .sig-actions {
      display: flex;
      gap: 8px;
      margin-top: 8px;
    }

    .sig-btn {
      padding: 6px 14px;
      border-radius: 8px;
      font-size: .75rem;
      font-weight: 700;
      cursor: pointer;
      border: none;
      transition: all .2s;
    }

    .sig-clear {
      background: rgba(231, 76, 60, .1);
      color: var(--red);
    }

    .sig-clear:hover {
      background: var(--red);
      color: #fff;
    }

    .sig-ok {
      background: rgba(46, 125, 58, .1);
      color: var(--green);
    }

    .sig-ok:hover {
      background: var(--green);
      color: #fff;
    }

    .sig-status {
      font-size: .75rem;
      color: var(--gray);
      align-self: center;
      margin-left: auto;
    }

    /* ── Admin V3 Extra Features ── */
    .admin-kpi-row {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
      gap: 16px;
      margin-bottom: 20px;
    }

    .kpi-card {
      background: #fff;
      border: 1.5px solid #e8eef6;
      border-radius: 16px;
      padding: 22px;
      display: flex;
      align-items: center;
      gap: 16px;
      transition: all .25s;
    }

    .kpi-card:hover {
      border-color: var(--blue);
      box-shadow: var(--shadow-md);
    }

    .kpi-icon {
      width: 52px;
      height: 52px;
      border-radius: 14px;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 22px;
      flex-shrink: 0;
    }

    .kpi-body h4 {
      font-family: 'Montserrat', sans-serif;
      font-weight: 800;
      font-size: 1.5rem;
      color: var(--navy);
      line-height: 1;
    }

    .kpi-body p {
      font-size: .78rem;
      color: var(--gray);
      margin-top: 4px;
    }

    .kpi-trend {
      margin-left: auto;
      font-size: .75rem;
      font-weight: 700;
      padding: 4px 10px;
      border-radius: 8px;
    }

    .kpi-up {
      background: rgba(39, 174, 96, .1);
      color: var(--success);
    }

    .kpi-down {
      background: rgba(231, 76, 60, .1);
      color: var(--red);
    }

    /* ── Tableau de bord client analytique ── */
    .client-analytics {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 16px;
      margin-bottom: 20px;
    }

    .ca-card {
      background: #fff;
      border: 1.5px solid #e8eef6;
      border-radius: 16px;
      padding: 20px;
    }

    .ca-card h4 {
      font-family: 'Montserrat', sans-serif;
      font-weight: 700;
      font-size: .9rem;
      color: var(--navy);
      margin-bottom: 14px;
      display: flex;
      align-items: center;
      gap: 8px;
    }

    .ca-timeline {
      display: flex;
      flex-direction: column;
      gap: 10px;
    }

    .ca-titem {
      display: flex;
      align-items: center;
      gap: 12px;
      padding: 10px;
      background: var(--light);
      border-radius: 10px;
      font-size: .8rem;
    }

    .ca-tdot {
      width: 10px;
      height: 10px;
      border-radius: 50%;
      flex-shrink: 0;
    }

    .ca-ttext {
      flex: 1;
      color: var(--text);
    }

    .ca-tdate {
      color: var(--gray);
      white-space: nowrap;
    }

    .progress-ring {
      display: flex;
      align-items: center;
      gap: 16px;
    }

    .ring-wrap {
      position: relative;
      width: 80px;
      height: 80px;
    }

    .ring-svg {
      transform: rotate(-90deg);
    }

    .ring-bg {
      fill: none;
      stroke: #e8eef6;
      stroke-width: 8;
    }

    .ring-fill {
      fill: none;
      stroke: var(--green);
      stroke-width: 8;
      stroke-linecap: round;
      transition: stroke-dashoffset 1.2s var(--ease-out-expo);
    }

    .ring-pct {
      position: absolute;
      inset: 0;
      display: flex;
      align-items: center;
      justify-content: center;
      font-family: 'Montserrat', sans-serif;
      font-weight: 800;
      font-size: .9rem;
      color: var(--navy);
    }

    /* ── AI Chat V3 ── */
    .chat-panel-v3 {
      position: fixed;
      bottom: 26px;
      right: 26px;
      width: 400px;
      height: 600px;
      background: rgba(255, 255, 255, 0.12);
      backdrop-filter: blur(24px);
      -webkit-backdrop-filter: blur(24px);
      border-radius: 24px;
      box-shadow: 0 24px 80px rgba(0, 0, 0, .2), 0 0 0 1px rgba(255, 255, 255, 0.25);
      z-index: 8500;
      display: none;
      flex-direction: column;
      overflow: hidden;
      border: 1px solid rgba(255, 255, 255, 0.2);
    }

    .chat-panel-v3.open {
      display: flex;
    }

    .ai-badge {
      display: inline-flex;
      align-items: center;
      gap: 4px;
      background: rgba(124, 58, 237, .2);
      color: #a78bfa;
      font-size: .65rem;
      font-weight: 700;
      padding: 2px 8px;
      border-radius: 6px;
      margin-top: 4px;
    }

    .chat-mode-bar {
      padding: 6px 14px;
      background: rgba(0, 0, 0, .1);
      display: flex;
      gap: 6px;
      align-items: center;
    }

    .chat-mode-btn {
      background: transparent;
      border: 1px solid rgba(255, 255, 255, .2);
      color: rgba(255, 255, 255, .6);
      padding: 3px 10px;
      border-radius: 12px;
      font-size: .7rem;
      font-weight: 600;
      cursor: pointer;
      transition: all .2s;
    }

    .chat-mode-btn.active {
      background: rgba(255, 255, 255, .15);
      color: #fff;
      border-color: rgba(255, 255, 255, .4);
    }

    .chat-ai-indicator {
      display: flex;
      align-items: center;
      gap: 4px;
      font-size: .68rem;
      color: rgba(255, 255, 255, .5);
      padding: 4px 14px 2px;
    }

    .chat-ai-dot {
      width: 6px;
      height: 6px;
      border-radius: 50%;
      background: #a78bfa;
      animation: pls 2s infinite;
    }

    /* ── Glassmorphism upgrade ── */
    .glass {
      background: rgba(255, 255, 255, .7);
      backdrop-filter: blur(20px);
      -webkit-backdrop-filter: blur(20px);
      border: 1px solid rgba(255, 255, 255, .5);
    }

    /* ── Floating notification panel ── */
    .notif-center {
      position: fixed;
      top: 72px;
      right: 18px;
      width: 320px;
      max-height: 80vh;
      overflow-y: auto;
      z-index: 9900;
      display: none;
      flex-direction: column;
      gap: 8px;
    }

    .notif-center.open {
      display: flex;
    }

    .notif-item {
      background: #fff;
      border-radius: 12px;
      padding: 14px 16px;
      box-shadow: var(--shadow-md);
      border-left: 4px solid var(--green);
      font-size: .82rem;
      position: relative;
      animation: slideInRight .3s var(--ease-out-expo);
    }

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

      to {
        opacity: 1;
        transform: translateX(0);
      }
    }

    .notif-close {
      position: absolute;
      top: 8px;
      right: 8px;
      background: none;
      border: none;
      cursor: pointer;
      color: var(--gray);
      font-size: 14px;
      padding: 2px;
    }

    /* ── Devis dynamique prix estimatif ── */
    .price-estimator {
      background: linear-gradient(135deg, rgba(46, 125, 58, .05), rgba(58, 159, 212, .05));
      border: 2px solid rgba(46, 125, 58, .15);
      border-radius: 16px;
      padding: 20px;
      margin-top: 16px;
    }

    .price-est-title {
      font-family: 'Montserrat', sans-serif;
      font-weight: 700;
      font-size: .9rem;
      color: var(--navy);
      margin-bottom: 12px;
      display: flex;
      align-items: center;
      gap: 8px;
    }

    .price-est-num {
      font-family: 'Montserrat', sans-serif;
      font-weight: 900;
      font-size: 2rem;
      color: var(--green);
      margin: 8px 0;
    }

    .price-est-note {
      font-size: .75rem;
      color: var(--gray);
    }

    /* ── Hover button upgrade ── */
    .bp {
      position: relative;
      overflow: hidden;
    }

    .bp::after {
      content: '';
      position: absolute;
      inset: 0;
      background: rgba(255, 255, 255, .15);
      transform: scaleX(0);
      transform-origin: left;
      transition: transform .3s var(--ease-out-expo);
    }

    .bp:hover::after {
      transform: scaleX(1);
    }

    /* ── Section Témoignages upgradée ── */
    .testi-rating {
      display: flex;
      gap: 2px;
      margin-bottom: 8px;
    }

    .testi-star {
      color: var(--gold);
      font-size: 14px;
    }

    /* ── Timeline client ── */
    .timeline {
      display: flex;
      flex-direction: column;
      gap: 0;
      position: relative;
    }

    .timeline::before {
      content: '';
      position: absolute;
      left: 16px;
      top: 0;
      bottom: 0;
      width: 2px;
      background: linear-gradient(to bottom, var(--green), var(--blue));
    }

    .tl-item {
      display: flex;
      gap: 16px;
      padding: 0 0 24px 0;
      position: relative;
    }

    .tl-dot {
      width: 34px;
      height: 34px;
      border-radius: 50%;
      background: var(--green);
      color: #fff;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 14px;
      flex-shrink: 0;
      position: relative;
      z-index: 1;
      box-shadow: 0 0 0 4px rgba(46, 125, 58, .15);
    }

    .tl-content {
      flex: 1;
      background: #fff;
      border: 1.5px solid #e8eef6;
      border-radius: 12px;
      padding: 14px 16px;
      margin-top: 4px;
    }

    .tl-content h5 {
      font-family: 'Montserrat', sans-serif;
      font-weight: 700;
      font-size: .85rem;
      color: var(--navy);
      margin-bottom: 4px;
    }

    .tl-content p {
      font-size: .78rem;
      color: var(--gray);
    }

    /* ── Quick search bar upgrade ── */
    .v3-search {
      position: relative;
      margin-bottom: 20px;
    }

    .v3-search input {
      width: 100%;
      padding: 14px 50px 14px 20px;
      border: 2px solid #e8eef6;
      border-radius: 50px;
      font-family: 'Inter', sans-serif;
      font-size: .9rem;
      outline: none;
      transition: all .3s;
      background: #fff;
    }

    .v3-search input:focus {
      border-color: var(--green);
      box-shadow: 0 4px 20px rgba(46, 125, 58, .1);
    }

    .v3-search-ico {
      position: absolute;
      right: 18px;
      top: 50%;
      transform: translateY(-50%);
      color: var(--gray);
      pointer-events: none;
    }

    /* ── Mobile upgrade ── */
    @media(max-width:680px) {
      .chiffres-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 16px;
      }

      .chiffre-num {
        font-size: 2.2rem;
      }

      .client-analytics {
        grid-template-columns: 1fr;
      }

      .admin-kpi-row {
        grid-template-columns: 1fr 1fr;
      }

      .chat-panel-v3 {
        width: calc(100vw - 16px);
        right: 8px;
        height: 85vh;
        bottom: 8px;
      }

      .partners-track {
        gap: 24px;
      }
    }

    @media(max-width:420px) {
      .admin-kpi-row {
        grid-template-columns: 1fr;
      }

      .chiffres-grid {
        grid-template-columns: 1fr;
      }
    }

    /* ══════════════════════════════════════════════
   V3.1 — NOUVELLES FONCTIONNALITÉS CSS
══════════════════════════════════════════════ */

    /* ── Dark Mode ── */
    body.dark-mode {
      --light: #1a2235;
      --white: #1e2d42;
      --text: #d4dce8;
      --gray: #7a90a8;
      background: #111927;
      color: #d4dce8;
    }

    body.dark-mode nav {
      background: rgba(8, 14, 26, .96) !important;
    }

    body.dark-mode .form-card,
    body.dark-mode .stat-card,
    body.dark-mode .ca-card,
    body.dark-mode .kpi-card {
      background: #1e2d42 !important;
      border-color: #2a3d56 !important;
    }

    body.dark-mode .faq-item {
      background: #1e2d42 !important;
      border-color: #2a3d56 !important;
    }

    body.dark-mode .faq-q {
      color: #e8edf5;
    }

    body.dark-mode .faq-a-inner {
      background: #1e2d42;
      color: #9ab;
    }

    body.dark-mode section:not([style*="background"]):not(.chiffres-section):not(.testi-section):not(.partners-section) {
      background: #151f30 !important;
    }

    body.dark-mode .auth-overlay {
      background: linear-gradient(160deg, #060e1a, #0d1420);
    }

    /* ── PWA banner ── */
    .pwa-banner {
      position: fixed;
      bottom: 0;
      left: 0;
      right: 0;
      background: linear-gradient(135deg, var(--navy), var(--blue));
      color: #fff;
      padding: 14px 20px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      z-index: 9998;
      transform: translateY(100%);
      transition: transform .4s var(--ease-spring);
    }

    .pwa-banner.show {
      transform: translateY(0);
    }

    .pwa-banner p {
      font-size: .85rem;
      font-weight: 600;
    }

    .pwa-install-btn {
      background: var(--gold);
      color: var(--navy);
      border: none;
      padding: 8px 18px;
      border-radius: 20px;
      font-weight: 800;
      font-size: .82rem;
      cursor: pointer;
      white-space: nowrap;
    }

    .pwa-dismiss {
      background: transparent;
      border: 1px solid rgba(255, 255, 255, .3);
      color: rgba(255, 255, 255, .7);
      padding: 6px 12px;
      border-radius: 16px;
      font-size: .78rem;
      cursor: pointer;
    }

    /* ── Recherche Globale ── */
    .global-search-overlay {
      position: fixed;
      inset: 0;
      background: rgba(13, 27, 53, .8);
      backdrop-filter: blur(12px);
      z-index: 99000;
      display: none;
      align-items: flex-start;
      justify-content: center;
      padding: 80px 20px 20px;
    }

    .global-search-overlay.open {
      display: flex;
    }

    .gsearch-box {
      background: #fff;
      border-radius: 20px;
      width: 100%;
      max-width: 680px;
      box-shadow: var(--shadow-lg);
      overflow: hidden;
    }

    .gsearch-input-wrap {
      display: flex;
      align-items: center;
      padding: 16px 20px;
      border-bottom: 1.5px solid #e8eef6;
      gap: 12px;
    }

    .gsearch-input {
      flex: 1;
      border: none;
      font-size: 1.1rem;
      font-family: 'Inter', sans-serif;
      outline: none;
      color: var(--navy);
    }

    .gsearch-input::placeholder {
      color: #aab;
    }

    .gsearch-close {
      background: none;
      border: none;
      cursor: pointer;
      font-size: 20px;
      color: var(--gray);
      padding: 4px;
    }

    .gsearch-results {
      max-height: 440px;
      overflow-y: auto;
    }

    .gsr-item {
      display: flex;
      align-items: center;
      gap: 14px;
      padding: 14px 20px;
      cursor: pointer;
      transition: background .15s;
      border-bottom: 1px solid #f5f7fa;
    }

    .gsr-item:hover {
      background: var(--light);
    }

    .gsr-icon {
      width: 36px;
      height: 36px;
      border-radius: 10px;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 16px;
      flex-shrink: 0;
    }

    .gsr-text h5 {
      font-family: 'Montserrat', sans-serif;
      font-weight: 700;
      font-size: .87rem;
      color: var(--navy);
      margin-bottom: 2px;
    }

    .gsr-text p {
      font-size: .76rem;
      color: var(--gray);
    }

    .gsr-tag {
      margin-left: auto;
      font-size: .65rem;
      font-weight: 700;
      padding: 3px 8px;
      border-radius: 6px;
      background: rgba(46, 125, 58, .1);
      color: var(--green);
      white-space: nowrap;
    }

    .gsearch-empty {
      padding: 40px;
      text-align: center;
      color: var(--gray);
      font-size: .88rem;
    }

    .gsearch-shortcuts {
      padding: 10px 20px;
      background: #f9fafb;
      display: flex;
      gap: 12px;
      font-size: .72rem;
      color: var(--gray);
      align-items: center;
    }

    .gsearch-shortcuts kbd {
      background: #fff;
      border: 1px solid #dde5f0;
      border-radius: 4px;
      padding: 2px 6px;
      font-family: monospace;
    }

    /* ── Calculateur Risques HSE ── */
    .risk-matrix-wrap {
      overflow-x: auto;
    }

    .risk-matrix {
      display: grid;
      grid-template-columns: repeat(5, 1fr);
      gap: 5px;
      min-width: 300px;
      margin: 16px 0;
    }

    .risk-cell {
      height: 50px;
      border-radius: 8px;
      display: flex;
      align-items: center;
      justify-content: center;
      font-weight: 800;
      font-size: .78rem;
      cursor: default;
      transition: transform .2s;
    }

    .risk-cell:hover {
      transform: scale(1.06);
    }

    .risk-low {
      background: #d4edda;
      color: #155724;
    }

    .risk-medium {
      background: #fff3cd;
      color: #856404;
    }

    .risk-high {
      background: #ffd5b8;
      color: #7a3a00;
    }

    .risk-critical {
      background: #f8d7da;
      color: #721c24;
    }

    .risk-extreme {
      background: #c82333;
      color: #fff;
    }

    .risk-sliders {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 16px;
      margin: 16px 0;
    }

    .risk-slider-wrap {
      background: var(--light);
      border-radius: 12px;
      padding: 14px;
    }

    .risk-slider-wrap label {
      font-size: .8rem;
      font-weight: 700;
      color: var(--navy);
      display: flex;
      justify-content: space-between;
      margin-bottom: 8px;
    }

    .risk-slider-wrap input[type=range] {
      width: 100%;
      accent-color: var(--green);
      cursor: pointer;
      height: 6px;
    }

    .risk-result {
      border-radius: 16px;
      padding: 20px;
      text-align: center;
      margin-top: 16px;
      transition: all .4s;
    }

    .risk-score {
      font-family: 'Montserrat', sans-serif;
      font-weight: 900;
      font-size: 2.5rem;
      margin: 6px 0;
    }

    .risk-level-label {
      font-size: .88rem;
      font-weight: 700;
      padding: 5px 16px;
      border-radius: 16px;
      display: inline-block;
    }

    /* ── Agenda ── */
    .agenda-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 20px;
    }

    .cal-wrap {
      background: #fff;
      border-radius: 16px;
      border: 1.5px solid #e8eef6;
      overflow: hidden;
    }

    .cal-header {
      background: var(--navy);
      color: #fff;
      padding: 14px 20px;
      display: flex;
      align-items: center;
      justify-content: space-between;
    }

    .cal-header h4 {
      font-family: 'Montserrat', sans-serif;
      font-weight: 700;
      font-size: .9rem;
    }

    .cal-nav {
      background: rgba(255, 255, 255, .15);
      border: none;
      color: #fff;
      width: 28px;
      height: 28px;
      border-radius: 50%;
      cursor: pointer;
      font-size: 14px;
      display: flex;
      align-items: center;
      justify-content: center;
      transition: background .2s;
    }

    .cal-nav:hover {
      background: rgba(255, 255, 255, .3);
    }

    .cal-days {
      display: grid;
      grid-template-columns: repeat(7, 1fr);
      padding: 8px;
    }

    .cal-day-hdr {
      text-align: center;
      font-size: .65rem;
      font-weight: 700;
      color: var(--gray);
      padding: 5px 0;
      text-transform: uppercase;
    }

    .cal-day {
      text-align: center;
      padding: 7px 3px;
      border-radius: 8px;
      font-size: .8rem;
      cursor: pointer;
      transition: all .2s;
      position: relative;
    }

    .cal-day:hover {
      background: var(--light);
    }

    .cal-day.today {
      background: var(--green);
      color: #fff;
      font-weight: 700;
    }

    .cal-day.selected {
      background: var(--blue);
      color: #fff;
    }

    .cal-day.has-event::after {
      content: '';
      position: absolute;
      bottom: 2px;
      left: 50%;
      transform: translateX(-50%);
      width: 4px;
      height: 4px;
      border-radius: 50%;
      background: var(--gold);
    }

    .cal-day.other-month {
      opacity: .3;
      cursor: default;
    }

    .slot-list {
      display: flex;
      flex-direction: column;
      gap: 8px;
      max-height: 320px;
      overflow-y: auto;
      padding: 4px;
    }

    .slot-item {
      display: flex;
      align-items: center;
      gap: 12px;
      padding: 11px 14px;
      background: var(--light);
      border-radius: 12px;
      border-left: 3px solid var(--green);
      cursor: pointer;
      transition: all .2s;
    }

    .slot-item:hover {
      background: #e8f4ec;
      transform: translateX(4px);
    }

    .slot-item.urgent {
      border-left-color: var(--red);
    }

    .slot-item.pending {
      border-left-color: var(--gold);
    }

    .slot-time {
      font-family: 'Montserrat', sans-serif;
      font-weight: 800;
      font-size: .8rem;
      color: var(--navy);
      white-space: nowrap;
    }

    .slot-info {
      flex: 1;
    }

    .slot-info h5 {
      font-weight: 700;
      font-size: .8rem;
      color: var(--navy);
      margin-bottom: 1px;
    }

    .slot-info p {
      font-size: .7rem;
      color: var(--gray);
    }

    /* ── Fidélité ── */
    .loyalty-card {
      background: linear-gradient(135deg, #1B2F5E, #2E7D3A);
      border-radius: 20px;
      padding: 26px;
      color: #fff;
      position: relative;
      overflow: hidden;
    }

    .loyalty-card::before {
      content: '';
      position: absolute;
      top: -50px;
      right: -50px;
      width: 200px;
      height: 200px;
      background: rgba(255, 255, 255, .05);
      border-radius: 50%;
    }

    .loyalty-level {
      display: flex;
      align-items: center;
      gap: 14px;
      margin-bottom: 14px;
      position: relative;
      z-index: 1;
    }

    .loyalty-badge {
      width: 56px;
      height: 56px;
      border-radius: 50%;
      border: 3px solid var(--gold);
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 24px;
      background: rgba(255, 255, 255, .1);
    }

    .loyalty-pts {
      font-family: 'Montserrat', sans-serif;
      font-weight: 900;
      font-size: 1.8rem;
      color: var(--gold);
    }

    .loyalty-progress {
      background: rgba(255, 255, 255, .15);
      border-radius: 10px;
      height: 9px;
      margin: 12px 0;
      overflow: hidden;
      position: relative;
      z-index: 1;
    }

    .loyalty-fill {
      height: 100%;
      border-radius: 10px;
      background: linear-gradient(90deg, var(--gold), #F97316);
      transition: width 1.4s var(--ease-out-expo);
    }

    .loyalty-rewards {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 8px;
      margin-top: 14px;
      position: relative;
      z-index: 1;
    }

    .reward-item {
      background: rgba(255, 255, 255, .08);
      border-radius: 10px;
      padding: 10px;
      text-align: center;
      cursor: pointer;
      transition: all .2s;
      border: 1px solid rgba(255, 255, 255, .1);
    }

    .reward-item:hover {
      background: rgba(255, 255, 255, .16);
      transform: translateY(-3px);
    }

    .reward-item .r-pts {
      font-family: 'Montserrat', sans-serif;
      font-weight: 800;
      font-size: .7rem;
      color: var(--gold);
    }

    .reward-item .r-label {
      font-size: .68rem;
      color: rgba(255, 255, 255, .8);
      margin-top: 2px;
    }

    /* ── Notifications Panel ── */
    .notif-bell-wrap {
      position: relative;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
      width: 36px;
      height: 36px;
    }

    .notif-count {
      position: absolute;
      top: -4px;
      right: -4px;
      background: var(--red);
      color: #fff;
      width: 17px;
      height: 17px;
      border-radius: 50%;
      font-size: .58rem;
      font-weight: 800;
      display: flex;
      align-items: center;
      justify-content: center;
      font-family: 'Montserrat', sans-serif;
      border: 2px solid rgba(10, 22, 40, .88);
    }

    .notif-panel {
      position: fixed;
      top: 64px;
      right: 18px;
      width: 340px;
      background: #fff;
      border-radius: 16px;
      box-shadow: var(--shadow-lg);
      z-index: 99100;
      border: 1.5px solid #e8eef6;
      overflow: hidden;
      display: none;
      animation: slideInRight .25s var(--ease-out-expo);
    }

    .notif-panel.open {
      display: block;
    }

    .notif-panel-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 14px 16px;
      border-bottom: 1px solid #e8eef6;
      background: var(--navy);
    }

    .notif-panel-head h4 {
      font-family: 'Montserrat', sans-serif;
      font-weight: 700;
      font-size: .88rem;
      color: #fff;
    }

    .notif-list {
      max-height: 380px;
      overflow-y: auto;
    }

    .notif-row {
      display: flex;
      align-items: flex-start;
      gap: 10px;
      padding: 12px 16px;
      border-bottom: 1px solid #f5f7fa;
      cursor: pointer;
      transition: background .15s;
    }

    .notif-row:hover {
      background: var(--light);
    }

    .notif-row.unread {
      background: #f0f9ff;
      border-left: 3px solid var(--blue);
    }

    .notif-ico2 {
      width: 34px;
      height: 34px;
      border-radius: 10px;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 15px;
      flex-shrink: 0;
    }

    .notif-content h5 {
      font-size: .8rem;
      font-weight: 700;
      color: var(--navy);
      margin-bottom: 2px;
    }

    .notif-content p {
      font-size: .72rem;
      color: var(--gray);
    }

    .notif-time2 {
      font-size: .66rem;
      color: var(--gray);
      white-space: nowrap;
      margin-left: auto;
      padding-top: 2px;
    }

    .notif-panel-footer {
      padding: 10px 16px;
      text-align: center;
      border-top: 1px solid #e8eef6;
    }

    /* ── Modal toutes les notifications ── */
    .notif-all-overlay {
      position: fixed;
      inset: 0;
      background: rgba(0, 0, 0, .55);
      z-index: var(--z-loader);
      display: none;
      align-items: center;
      justify-content: center;
      padding: 16px;
    }

    .notif-all-overlay.open {
      display: flex;
    }

    .notif-all-modal {
      background: #fff;
      border-radius: 20px;
      width: min(520px, 100%);
      max-height: 85vh;
      display: flex;
      flex-direction: column;
      box-shadow: 0 24px 80px rgba(0, 0, 0, .3);
      overflow: hidden;
    }

    .notif-all-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 16px 20px;
      background: var(--navy);
      flex-shrink: 0;
    }

    .notif-all-head h3 {
      font-family: 'Montserrat', sans-serif;
      font-weight: 800;
      font-size: .95rem;
      color: #fff;
    }

    .notif-all-head button {
      background: rgba(255, 255, 255, .15);
      border: none;
      color: #fff;
      width: 30px;
      height: 30px;
      border-radius: 50%;
      cursor: pointer;
      font-size: 1rem;
      display: flex;
      align-items: center;
      justify-content: center;
    }

    .notif-all-filters {
      display: flex;
      gap: 6px;
      padding: 10px 16px;
      border-bottom: 1px solid #e8eef6;
      flex-wrap: wrap;
      flex-shrink: 0;
    }

    .notif-filter-btn {
      background: #f0f6fa;
      border: 1.5px solid #dde5f0;
      border-radius: 20px;
      padding: 4px 12px;
      font-size: .72rem;
      font-weight: 700;
      cursor: pointer;
      color: var(--navy);
      transition: all .15s;
    }

    .notif-filter-btn.active {
      background: var(--navy);
      color: #fff;
      border-color: var(--navy);
    }

    .notif-all-body {
      overflow-y: auto;
      flex: 1;
    }

    .notif-all-footer {
      padding: 12px 16px;
      border-top: 1px solid #e8eef6;
      display: flex;
      justify-content: space-between;
      align-items: center;
      flex-shrink: 0;
    }

    @media(max-width:560px) {
      .notif-all-modal {
        border-radius: 16px 16px 0 0;
        max-height: 90vh;
        width: 100%;
        margin-top: auto;
      }
    }

    /* ── Live Stats bar ── */
    .live-stats-bar {
      position: fixed;
      top: 58px;
      left: 50%;
      transform: translateX(-50%);
      background: rgba(27, 47, 94, .95);
      backdrop-filter: blur(10px);
      color: #fff;
      padding: 5px 16px;
      border-radius: 0 0 14px 14px;
      font-size: .7rem;
      font-weight: 700;
      z-index: 4998;
      display: flex;
      align-items: center;
      gap: 8px;
      box-shadow: 0 4px 16px rgba(0, 0, 0, .2);
      transition: all .3s;
      white-space: nowrap;
    }

    .live-dot {
      width: 6px;
      height: 6px;
      border-radius: 50%;
      background: #6EF787;
      animation: pls 1.5s infinite;
      flex-shrink: 0;
    }

    /* ── IA Rapport ── */
    .ia-report-panel {
      background: linear-gradient(135deg, #1a2744, #0f3460);
      border-radius: 20px;
      padding: 26px;
      color: #fff;
    }

    .ia-report-options {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
      gap: 10px;
      margin: 14px 0;
    }

    .ia-opt {
      background: rgba(255, 255, 255, .07);
      border: 1.5px solid rgba(255, 255, 255, .12);
      border-radius: 12px;
      padding: 12px;
      cursor: pointer;
      transition: all .2s;
    }

    .ia-opt:hover,
    .ia-opt.selected {
      background: rgba(245, 166, 35, .15);
      border-color: var(--gold);
    }

    .ia-opt label {
      display: flex;
      align-items: center;
      gap: 8px;
      cursor: pointer;
      font-size: .8rem;
      color: rgba(255, 255, 255, .85);
    }

    .ia-opt input {
      accent-color: var(--gold);
    }

    /* ── Responsive V3.1 ── */
    @media(max-width:680px) {
      .agenda-grid {
        grid-template-columns: 1fr;
      }

      .risk-sliders {
        grid-template-columns: 1fr;
      }

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

      .global-search-overlay {
        padding: 58px 10px 10px;
      }

      .notif-panel {
        right: 8px;
        width: calc(100vw - 16px);
      }

      .live-stats-bar {
        font-size: .62rem;
        padding: 4px 10px;
      }

      .ia-report-options {
        grid-template-columns: 1fr 1fr;
      }
    }

    /* ══ SIGNATURE MULTI-MODULE ══ */
    .sig-module {
      background: linear-gradient(135deg, #f8fafc, #edf2f8);
      border: 2px dashed #c8d8ea;
      border-radius: 14px;
      padding: 16px;
      margin-top: 18px;
    }

    .sig-module .sig-title {
      font-family: 'Montserrat', sans-serif;
      font-weight: 700;
      font-size: .85rem;
      color: var(--navy);
      margin-bottom: 10px;
      display: flex;
      align-items: center;
      gap: 8px;
    }

    .sig-tabs {
      display: flex;
      gap: 6px;
      margin-bottom: 12px;
      flex-wrap: wrap;
    }

    .sig-tab {
      background: var(--light);
      border: 1.5px solid #dde5f0;
      color: var(--gray);
      padding: 6px 14px;
      border-radius: 20px;
      font-size: .75rem;
      font-weight: 700;
      cursor: pointer;
      transition: all .2s;
    }

    .sig-tab.active {
      background: var(--navy);
      color: #fff;
      border-color: var(--navy);
    }

    .sig-panel {
      display: none;
    }

    .sig-panel.active {
      display: block;
    }

    .multi-sig-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 14px;
    }

    .sig-slot {
      background: #fff;
      border-radius: 10px;
      padding: 12px;
      border: 1.5px solid #e8eef6;
    }

    .sig-slot label {
      font-size: .75rem;
      font-weight: 700;
      color: var(--navy);
      display: block;
      margin-bottom: 4px;
    }

    .sig-canvas-mini {
      width: 100%;
      height: 90px;
      border-radius: 8px;
      cursor: crosshair;
      display: block;
      touch-action: none;
      background: #fafcff;
      border: 1.5px solid #e8eef6;
    }

    .sig-slot-actions {
      display: flex;
      gap: 6px;
      margin-top: 6px;
      align-items: center;
    }

    .sig-slot-status {
      font-size: .68rem;
      color: var(--gray);
      flex: 1;
    }

    .sig-slot-status.signed {
      color: var(--success);
      font-weight: 700;
    }

    @media(max-width:680px) {
      .multi-sig-grid {
        grid-template-columns: 1fr;
      }
    }


    /* ══ HIDE/SHOW CONTROLS ══ */
    .float-ctrl {
      position: fixed;
      z-index: 7900;
      display: flex;
      flex-direction: column;
      gap: 4px;
      right: 16px;
      bottom: 280px;
    }

    .float-ctrl-btn {
      width: 22px;
      height: 22px;
      border-radius: 50%;
      background: rgba(10, 22, 40, .7);
      border: 1px solid rgba(255, 255, 255, .2);
      color: rgba(255, 255, 255, .7);
      cursor: pointer;
      font-size: 10px;
      display: flex;
      align-items: center;
      justify-content: center;
      transition: all .2s;
      backdrop-filter: blur(6px);
    }

    .float-ctrl-btn:hover {
      background: rgba(10, 22, 40, .95);
      color: #fff;
      transform: scale(1.15);
    }

    .float-ctrl-btn[title]:hover::after {
      content: attr(title);
      position: absolute;
      right: 30px;
      background: rgba(10, 22, 40, .9);
      color: #fff;
      padding: 3px 8px;
      border-radius: 6px;
      font-size: .68rem;
      white-space: nowrap;
      pointer-events: none;
    }

    /* Dark mode in nav settings menu */
    .dark-mode-toggle-row {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 8px 12px;
      cursor: pointer;
      color: rgba(255, 255, 255, .8);
      font-size: .82rem;
      font-weight: 600;
      border-radius: 8px;
      transition: background .15s;
    }

    .dark-mode-toggle-row:hover {
      background: rgba(255, 255, 255, .08);
    }

    .dm-switch {
      width: 36px;
      height: 20px;
      background: rgba(255, 255, 255, .15);
      border-radius: 10px;
      position: relative;
      transition: background .2s;
      flex-shrink: 0;
    }

    .dm-switch.on {
      background: var(--blue);
    }

    .dm-switch::after {
      content: '';
      position: absolute;
      top: 2px;
      left: 2px;
      width: 16px;
      height: 16px;
      background: #fff;
      border-radius: 50%;
      transition: transform .2s;
    }

    .dm-switch.on::after {
      transform: translateX(16px);
    }

    /* ── Activity filter buttons fix ── */
    .act-cat-filters {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      justify-content: center;
      margin-bottom: 24px;
      padding: 0 4%;
    }

    .act-cat-btn {
      padding: 8px 18px;
      border-radius: 20px;
      font-size: .82rem;
      font-weight: 700;
      cursor: pointer;
      transition: all .25s;
      border: 2px solid rgba(27, 47, 94, .2);
      background: #fff;
      color: var(--navy);
      font-family: 'Montserrat', sans-serif;
    }

    .act-cat-btn:hover {
      border-color: var(--green);
      background: rgba(46, 125, 58, .08);
      transform: translateY(-2px);
    }

    .act-cat-btn.active {
      background: var(--green);
      color: #fff;
      border-color: var(--green);
      box-shadow: 0 4px 14px rgba(46, 125, 58, .3);
    }

    body.dark-mode .act-cat-btn {
      background: #1a2a40;
      border-color: #2a3d56;
      color: #9ab5cc;
    }

    body.dark-mode .act-cat-btn:hover {
      border-color: var(--green);
      background: rgba(46, 125, 58, .15);
    }

    body.dark-mode .act-cat-btn.active {
      background: var(--green);
      color: #fff;
      border-color: var(--green);
    }

    /* ══ DARK MODE CHAT & SPECIFIC FIXES ══ */
    body.dark-mode .msg.bot .mb {
      background: #1e3a5f !important;
      color: #e0eaf8 !important;
      border-color: rgba(100, 150, 220, .2) !important;
    }

    body.dark-mode .msg.user .mb {
      background: linear-gradient(135deg, #1B2F5E, #2a4f8a) !important;
      color: #fff !important;
    }

    body.dark-mode .chsug {
      background: #0d1e32 !important;
      border-top-color: #1e3048 !important;
    }

    body.dark-mode .csb {
      background: #1a2d48 !important;
      color: #9ab5d4 !important;
      border-color: #2a3d56 !important;
    }

    body.dark-mode .chin {
      background: #0d1e32 !important;
      border-top-color: #1e3048 !important;
    }

    body.dark-mode .chinp {
      background: #111f34 !important;
      color: #cdd8ea !important;
      border-color: #2a3d56 !important;
      caret-color: #F5A623;
    }

    body.dark-mode .chat-panel {
      background: rgba(9, 18, 32, .97) !important;
    }

    body.dark-mode .chdr {
      background: linear-gradient(135deg, #0d1f36, #1a3a6e) !important;
    }

    body.dark-mode .chat-mode-bar {
      background: rgba(0, 0, 0, .3) !important;
    }

    body.dark-mode .chat-mode-btn {
      color: rgba(180, 200, 230, .6) !important;
      border-color: rgba(255, 255, 255, .1) !important;
    }

    body.dark-mode .chat-mode-btn.active {
      background: rgba(255, 255, 255, .12) !important;
      color: #fff !important;
    }

    body.dark-mode .chat-ai-indicator {
      color: rgba(150, 180, 220, .5) !important;
    }

    /* FORMS DARK */
    body.dark-mode .radio-btn {
      background: #162030 !important;
      border-color: #2a3d56 !important;
      color: #cdd8ea !important;
    }

    body.dark-mode .radio-btn:hover {
      border-color: var(--green) !important;
      background: #1e3a2a !important;
    }

    body.dark-mode .form-card h3,
    body.dark-mode .inv-form h3 {
      color: #e8f0f8 !important;
    }

    body.dark-mode .fc-desc {
      color: #7a9ab8 !important;
    }

    body.dark-mode .opt-badge {
      background: rgba(58, 159, 212, .2) !important;
      color: #64b0d4 !important;
    }

    /* NAV ACTIONS DARK */
    body.dark-mode #searchNavBtn {
      background: rgba(255, 255, 255, .06) !important;
      border-color: rgba(255, 255, 255, .1) !important;
    }

    body.dark-mode .nav-uname {
      color: rgba(200, 220, 240, .85) !important;
    }

    /* ABOUT CARDS DARK */
    body.dark-mode .about-card {
      background: #1a2a3e !important;
      border-color: #2a3d56 !important;
    }

    body.dark-mode .about-card p {
      color: #9ab5cc !important;
    }

    /* LOADER DARK */
    body.dark-mode #loader {
      background: linear-gradient(160deg, #040810, #080f1c) !important;
    }

    /* PROCESS STEPS DARK */
    body.dark-mode .ps {
      background: #1a2a3e !important;
      border-color: #2a3d56 !important;
    }

    body.dark-mode .ps h4 {
      color: #e8f0f8 !important;
    }

    body.dark-mode .ps p {
      color: #8aaccc !important;
    }

    body.dark-mode .psn {
      color: #3A9FD4 !important;
    }

    /* PILLARS DARK */
    body.dark-mode .pillar-card-hover {
      background: rgba(255, 255, 255, .04) !important;
    }

    /* SCROLL TOP */
    body.dark-mode .stup {
      background: linear-gradient(135deg, #1B2F5E, #3A9FD4) !important;
    }

    /* GALERIE DARK */
    body.dark-mode .galerie-card {
      background: #1a2a3e !important;
      border-color: #2a3d56 !important;
    }


    /* ══ DRAGGABLE FLOATING WIDGETS ══ */
    .drag-handle {
      cursor: grab;
      user-select: none;
    }

    .drag-handle:active {
      cursor: grabbing;
    }

    .float-widget {
      position: fixed;
      z-index: 7995;
      transition: box-shadow .2s;
    }

    .float-widget.dragging {
      box-shadow: 0 12px 40px rgba(0, 0, 0, .35) !important;
      z-index: 8100 !important;
    }

    /* ── SYNC STATUS INDICATOR ── */
    #syncStatus {
      animation: syncFadeIn .3s ease;
    }

    @keyframes syncFadeIn {
      from {
        opacity: 0;
        transform: translateX(-50%) translateY(8px);
      }

      to {
        opacity: 1;
        transform: translateX(-50%) translateY(0);
      }
    }

    /* ── MOBILE VH FIX (iOS Safari) ── */
    .chat-panel {
      max-height: calc(var(--vh, 1vh)*80);
    }

    .auth-box {
      max-height: calc(var(--vh, 1vh)*92);
    }

    /* ── KEYBOARD FOCUS ACCESSIBILITY ── */
    button:focus-visible,
    a:focus-visible,
    input:focus-visible,
    select:focus-visible,
    textarea:focus-visible {
      outline: 2.5px solid var(--gold);
      outline-offset: 2px;
    }

    /* ── PRINT: hide all UI chrome ── */
    @media print {

      #syncStatus,
      #cookie-banner {
        display: none !important;
      }
    }

    .float-widget-mini {
      position: fixed;
      z-index: 7994;
      display: flex;
      flex-direction: column;
      gap: 6px;
      align-items: flex-end;
      bottom: 20px;
      right: 16px;
    }

    /* Visitor stats pill - draggable */
    #visitorStatsPill {
      position: fixed;
      bottom: 90px;
      left: 10px;
      z-index: 7993;
      display: flex;
      flex-direction: column;
      gap: 5px;
      touch-action: none;
    }

    #visitorStatsPill .pill-row {
      display: flex;
      align-items: center;
      gap: 6px;
    }

    .pill-minimize {
      width: 16px;
      height: 16px;
      border-radius: 50%;
      background: rgba(0, 0, 0, .3);
      border: none;
      color: rgba(255, 255, 255, .8);
      cursor: pointer;
      font-size: 8px;
      display: flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
      transition: all .2s;
    }

    .pill-minimize:hover {
      background: rgba(0, 0, 0, .6);
      color: #fff;
    }

    #visitorStatsPill.minimized .pill-content {
      display: none;
    }

    #visitorStatsPill.minimized .pill-restore {
      display: flex !important;
    }

    .pill-restore {
      display: none !important;
      background: rgba(27, 47, 94, .8);
      color: rgba(255, 255, 255, .7);
      border: none;
      border-radius: 12px;
      padding: 4px 10px;
      font-size: .68rem;
      cursor: pointer;
      backdrop-filter: blur(6px);
    }

    /* WhatsApp draggable */
    #wa-float {
      touch-action: none;
    }

    /* Chat fab draggable */
    #chatFab {
      touch-action: none;
    }


    /* ══ DOCUMENT VAULT ══ */
    .vault-grid {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
      gap: 16px;
      margin-top: 16px;
    }

    .vault-item {
      background: #fff;
      border: 1.5px solid #e8eef6;
      border-radius: 14px;
      padding: 16px;
      transition: all .25s;
      cursor: pointer;
    }

    .vault-item:hover {
      border-color: var(--blue);
      box-shadow: 0 6px 24px rgba(58, 159, 212, .12);
      transform: translateY(-3px);
    }

    .vault-icon {
      font-size: 2.2rem;
      margin-bottom: 10px;
      display: block;
    }

    .vault-item h5 {
      font-family: 'Montserrat', sans-serif;
      font-weight: 700;
      font-size: .85rem;
      color: var(--navy);
      margin-bottom: 4px;
    }

    .vault-item p {
      font-size: .74rem;
      color: var(--gray);
      line-height: 1.5;
    }

    .vault-item .vault-meta {
      display: flex;
      align-items: center;
      justify-content: space-between;
      margin-top: 10px;
    }

    .vault-size {
      font-size: .68rem;
      color: var(--gray);
      background: var(--light);
      padding: 2px 8px;
      border-radius: 6px;
    }

    .vault-date {
      font-size: .68rem;
      color: var(--gray);
    }

    .vault-actions {
      display: flex;
      gap: 6px;
      margin-top: 10px;
    }

    .vault-dl {
      background: rgba(58, 159, 212, .1);
      color: var(--blue);
      border: none;
      border-radius: 8px;
      padding: 5px 12px;
      font-size: .74rem;
      font-weight: 700;
      cursor: pointer;
      transition: all .2s;
    }

    .vault-dl:hover {
      background: var(--blue);
      color: #fff;
    }

    .vault-del {
      background: rgba(231, 76, 60, .08);
      color: var(--red);
      border: none;
      border-radius: 8px;
      padding: 5px 10px;
      font-size: .74rem;
      font-weight: 700;
      cursor: pointer;
      transition: all .2s;
    }

    .vault-del:hover {
      background: var(--red);
      color: #fff;
    }

    .vault-upload-zone {
      border: 2px dashed #c8d8ea;
      border-radius: 16px;
      padding: 40px 20px;
      text-align: center;
      cursor: pointer;
      transition: all .3s;
      background: var(--light);
    }

    .vault-upload-zone:hover,
    .vault-upload-zone.dragover {
      border-color: var(--blue);
      background: rgba(58, 159, 212, .05);
    }

    .vault-upload-zone p {
      color: var(--gray);
      font-size: .88rem;
      margin-top: 10px;
    }

    .vault-cat-tag {
      font-size: .65rem;
      font-weight: 700;
      padding: 2px 8px;
      border-radius: 6px;
      margin-bottom: 6px;
      display: inline-block;
    }

    body.dark-mode .vault-item {
      background: #1a2a40 !important;
      border-color: #2a3d56 !important;
    }

    body.dark-mode .vault-item h5 {
      color: #e8f0f8 !important;
    }


    /* ══ BACKUP / RESTORE SYSTEM ══ */
    .backup-bar {
      display: flex;
      gap: 10px;
      flex-wrap: wrap;
      padding: 14px 18px;
      margin: 12px 0;
      background: linear-gradient(135deg, #f0f6fa 0%, #e8f0f8 100%);
      border: 1.5px solid #dde5f0;
      border-radius: 12px;
      align-items: center;
    }

    .backup-bar .backup-title {
      font-weight: 700;
      font-size: .85rem;
      color: var(--navy);
      margin-right: auto;
      display: flex;
      align-items: center;
      gap: 6px;
    }

    .backup-btn {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      padding: 8px 16px;
      border: none;
      border-radius: 8px;
      font-size: .8rem;
      font-weight: 700;
      cursor: pointer;
      transition: transform .2s, box-shadow .2s;
      font-family: inherit;
    }

    .backup-btn:hover {
      transform: translateY(-2px);
      box-shadow: 0 4px 12px rgba(0, 0, 0, .15);
    }

    .backup-btn.export {
      background: var(--green);
      color: #fff;
    }

    .backup-btn.import {
      background: var(--navy);
      color: #fff;
    }

    .backup-btn.export-module {
      background: var(--blue);
      color: #fff;
      font-size: .75rem;
      padding: 6px 12px;
    }

    .backup-btn.import-module {
      background: var(--gold);
      color: var(--navy);
      font-size: .75rem;
      padding: 6px 12px;
    }

    body.dark-mode .backup-bar {
      background: linear-gradient(135deg, #1a2744 0%, #0D1B35 100%);
      border-color: #2a3d56;
    }

    body.dark-mode .backup-bar .backup-title {
      color: #e8f0f8;
    }

    /* Duration unit group styling */
    .inv-duree-group select {
      color: var(--navy);
      font-weight: 600;
    }

    body.dark-mode .inv-duree-group select {
      background: #1a2744;
      color: #e8f0f8;
      border-color: #2a3d56;
    }

    /* ═══════════ ACCESSIBILITY: Focus Visible ═══════════ */
    :focus-visible {
      outline: 2px solid var(--blue);
      outline-offset: 2px;
    }

    input:focus-visible,
    textarea:focus-visible,
    select:focus-visible {
      outline: 2px solid var(--blue);
      outline-offset: 0;
      border-color: var(--blue);
      box-shadow: 0 0 0 3px rgba(58, 159, 212, .15);
    }

    button:focus-visible {
      outline: 2px solid var(--gold);
      outline-offset: 2px;
    }

    a:focus-visible {
      outline: 2px solid var(--gold);
      outline-offset: 2px;
      border-radius: 4px;
    }