/* Authenticated app navbar (role portals) — extracted verbatim from the
   mockup _navbar_authenticated <style> block to honor the zero-inline-CSS
   rule. Class names (ntv2-*) kept identical for pixel-perfect parity. */
  /* Retour Loic 07/08 : la barre etait trop haute, elle collait au bord.
     24px reprend l'espacement que le client a sous les yeux sur staging.
     Garder cette valeur ALIGNEE avec mockups/shared/_navbar_authenticated. */
  .ntv2-frame{
    position:fixed; top:24px; left:24px; right:24px; z-index:100;
  }
  .ntv2-bar{
    display:grid;
    grid-template-columns: auto 1fr auto;
    align-items:center;
    gap:24px;
    padding:10px 18px;
    background:rgba(255,255,255,0.93);
    backdrop-filter:blur(20px);
    -webkit-backdrop-filter:blur(20px);
    border:1px solid rgba(184,145,42,0.15);
    border-radius:var(--r-lg);
    box-shadow:0 4px 24px rgba(26,22,20,0.06);
    font-family:'Geist', system-ui, sans-serif;
  }

  .ntv2-logo{
    display:inline-flex; align-items:center; gap:9px;
    background:none; border:none; padding:0; cursor:pointer;
    text-decoration:none; color:inherit;
  }
  .ntv2-logo img{ display:block; border-radius:7px; }
  /* Constat staging 02/10 : a 1150 px le logo tombait a 103 px de large (27 a
     1024) au lieu de 127, sur 28 de haut. Le `max-width:100%` de la base
     Tailwind rend l'image compressible dans la colonne `auto` de la grille :
     le SVG se reduisait pour laisser la place aux liens. Le logo garde sa
     taille, ce sont les liens qui s'adaptent. */
  .ntv2-logo{ flex-shrink:0; }
  .ntv2-logo-img{ height:28px; width:auto; max-width:none; flex-shrink:0; }
  .ntv2-mobile-link.is-child{ padding-left:28px; font-size:12px; }
  .ntv2-logo-text{
    font-family:'Geist',system-ui,sans-serif;
    font-size:22px; font-weight:600; color:#1A1614; letter-spacing:-0.3px;
    line-height:1; white-space:nowrap;
  }
  .ntv2-dot{ color:var(--gold-primary); }

  .ntv2-center{
    display:flex; align-items:center; gap:8px;
    justify-content:center;
  }
  .ntv2-space-wrap{ display:none; position:relative; flex-shrink:0; z-index:50; }
  .ntv2-space-pill{
    display:inline-flex; align-items:center; gap:7px;
    padding:5px 10px 5px 9px; border-radius:99px; cursor:pointer;
    font-family:inherit; font-size:9.5px; font-weight:600;
    letter-spacing:1.4px; text-transform:uppercase;
    white-space:nowrap; transition:all 0.15s; border:1px solid transparent;
  }
  .ntv2-space-dot{ width:6px; height:6px; border-radius:50%; box-shadow:0 0 0 1.5px rgba(255,255,255,0.55); }
  .ntv2-space-arrow{ font-size:8px; opacity:0.65; margin-left:1px; }
  .ntv2-space-talent{
    background:linear-gradient(180deg,#FBF4DE,#F5E9C2);
    border-color:var(--gold-200); color:var(--gold-600);
  }
  .ntv2-space-talent:hover{ background:linear-gradient(180deg,#FCF6E5,#F8EFD0); border-color:var(--gold-primary); box-shadow:0 2px 8px rgba(140,109,52,0.15); }
  .ntv2-space-expert{
    background:linear-gradient(180deg,#F8EDE8,#F1DDD4);
    border-color:#E5C7BC; color:#8C5A4D;
  }
  .ntv2-space-expert:hover{ background:linear-gradient(180deg,#FBEFEA,#F4E0D7); border-color:#D9B7AB; box-shadow:0 2px 8px rgba(140,90,77,0.15); }
  .ntv2-space-recruiter{
    background:linear-gradient(180deg,#E8ECF4,#D4DCEC);
    border-color:#B7C2DA; color:#3D4F7A;
  }
  .ntv2-space-recruiter:hover{ background:linear-gradient(180deg,#EDF1F7,#DAE2EF); border-color:#A8B5D0; box-shadow:0 2px 8px rgba(61,79,122,0.15); }

  .ntv2-space-menu{
    position:absolute; top:calc(100% + 8px); left:0; min-width:268px;
    background:#fff; border:1px solid rgba(184,145,42,0.15); border-radius:14px;
    box-shadow:0 12px 32px rgba(26,22,20,0.12); padding:8px; z-index:300;
    animation:ntv2-in 0.15s ease;
    display:none;
  }
  .ntv2-space-menu.is-open{ display:block; }
  .ntv2-space-head{
    font-family:inherit; font-size:9.5px; font-weight:600; color:#9A8E80;
    letter-spacing:1.6px; text-transform:uppercase; padding:8px 10px 6px;
  }
  .ntv2-space-item{
    display:flex; align-items:center; gap:11px; width:100%;
    padding:10px 11px; border-radius:9px; border:none; background:none;
    cursor:pointer; font-family:inherit; text-align:left; transition:background 0.12s;
    text-decoration:none; color:inherit;
  }
  .ntv2-space-item:hover{ background:#FFFBF0; }
  .ntv2-space-item.is-active{ background:linear-gradient(135deg,rgba(184,145,42,0.08),rgba(212,168,50,0.05)); cursor:default; }
  .ntv2-space-icon{
    width:32px; height:32px; border-radius:var(--r-sm);
    display:inline-flex; align-items:center; justify-content:center;
    background:var(--gold-fill);
    color:#fff; text-shadow: var(--on-gold-shadow); font-size:14px; font-weight:800; flex-shrink:0;
  }
  .ntv2-space-text{ display:flex; flex-direction:column; gap:2px; flex:1; min-width:0; }
  .ntv2-space-item-label{ font-size:13px; font-weight:600; color:#1A1614; }
  .ntv2-space-item-desc{ font-size:11px; color:#6B6660; font-weight:400; }
  .ntv2-space-check{ color:var(--gold-500); font-size:10px; flex-shrink:0; }

  .ntv2-sep{
    display:none;
    width:1px; height:18px; background:rgba(184,145,42,0.25);
    margin:0 10px;
  }
  .ntv2-item{
    position:relative;
    display:inline-flex; align-items:center; gap:6px;
    padding:7px 14px; border-radius:var(--r-xl); border:none; background:none;
    font-family:inherit; font-size:13px; font-weight:500; color:#1A1614;
    cursor:pointer; white-space:nowrap;
    transition:all 0.18s ease;
    text-decoration:none;
  }
  .ntv2-item:hover{ background:rgba(212,168,50,0.08); }
  .ntv2-item.is-active{
    background:var(--gold-fill);
    color:var(--on-gold); text-shadow:var(--on-gold-shadow);
    box-shadow:0 2px 10px rgba(184,145,42,0.32),
               inset 0 1px 0 rgba(255,255,255,0.4);
  }
  .ntv2-badge{
    display:inline-flex; align-items:center; justify-content:center;
    min-width:17px; height:17px; padding:0 5px;
    border-radius:99px;
    background:var(--gold-primary);
    color:#fff; text-shadow: var(--on-gold-shadow); font-size:9px; font-weight:700;
    box-shadow:0 1px 3px rgba(184,145,42,0.4);
  }
  .ntv2-item.is-active .ntv2-badge{
    background:#1A1614; color:var(--gold-primary);
  }
  .ntv2-nav-dropdown{ position:relative; display:inline-flex; }
  .ntv2-nav-summary{ list-style:none; }
  .ntv2-nav-summary::-webkit-details-marker{ display:none; }
  /* #2628 — dropdown riche aligné sur la maquette B3 : menu crème doré,
     items titre + sous-titre (classes ntv2-dd-*). */
  .ntv2-nav-menu{
    position:absolute; top:calc(100% + 10px); left:50%; transform:translateX(-50%);
    min-width:290px;
    background:#F6EEDC; border:1px solid var(--gold-200); border-radius:14px;
    box-shadow:0 16px 40px rgba(44,44,44,0.14); padding:8px; z-index:260; display:none;
  }
  .ntv2-nav-dropdown[open] .ntv2-nav-menu{ display:block; animation:ntv2-in 0.15s ease; }
  .ntv2-nav-child{ display:flex; align-items:center; justify-content:space-between; padding:10px 11px; border-radius:9px; font-size:12.5px; font-weight:600; color:#1A1614; text-decoration:none; }
  .ntv2-nav-child:hover,.ntv2-nav-child.is-active{ background:#FFFBF0; color:var(--gold-deep); }
  .ntv2-nav-caret{ font-size:10px; opacity:.68; margin-left:2px; }
  .ntv2-dd-item{
    display:flex; align-items:flex-start; gap:11px;
    padding:11px 12px; border-radius:9px;
    text-decoration:none; color:inherit;
    transition:background 0.12s, box-shadow 0.12s;
  }
  a.ntv2-dd-item:hover,
  .ntv2-dd-item.is-active{ background:#fff; box-shadow:0 1px 2px rgba(44,44,44,0.06); }
  .ntv2-dd-body{ flex:1; min-width:0; }
  .ntv2-dd-title{
    display:flex; align-items:center; gap:8px;
    font-size:13.5px; font-weight:600; color:#1A1614;
  }
  .ntv2-dd-sub{ display:block; font-size:12px; color:#6B6660; margin-top:2px; }
  .ntv2-dd-badge{
    display:inline-flex; align-items:center; justify-content:center;
    font-family:'Geist Mono', ui-monospace, monospace;
    font-size:10px; font-weight:600; letter-spacing:0.04em;
    color:#fff; background:#B0432F; padding:1px 7px; border-radius:var(--r-pill);
  }

  /* #4507 (Kevin 05/10) — le menu déroulant passe sur fond blanc, avec une
     pastille d'icône colorée par entrée, un filet entre les entrées et un
     chevron doré sur les liens. Toutes les barres partagent ce menu ; les
     entrées sans icône gardent leur ligne. */
  .ntv2-nav-menu{ background:var(--n-0); min-width:320px; }
  .ntv2-dd-item{ align-items:center; gap:14px; padding:12px; position:relative; }
  .ntv2-dd-item + .ntv2-dd-item::before{
    content:""; position:absolute; top:0; left:12px; right:12px; height:1px; background:var(--n-100);
  }
  a.ntv2-dd-item:hover,
  .ntv2-dd-item.is-active{ background:var(--gold-50); box-shadow:none; }
  .ntv2-dd-ic{
    flex-shrink:0; width:40px; height:40px; border-radius:12px;
    display:inline-flex; align-items:center; justify-content:center;
  }
  .ntv2-dd-ic.is-gold{ background:var(--nav-ic-gold-bg); color:var(--nav-ic-gold); }
  .ntv2-dd-ic.is-green{ background:var(--nav-ic-green-bg); color:var(--nav-ic-green); }
  .ntv2-dd-ic.is-slate{ background:var(--nav-ic-slate-bg); color:var(--nav-ic-slate); }
  .ntv2-dd-ic.is-rose{ background:var(--nav-ic-rose-bg); color:var(--nav-ic-rose); }
  .ntv2-dd-chev{ flex-shrink:0; display:inline-flex; color:var(--gold-500); }
  a.ntv2-dd-item:hover .ntv2-dd-chev{ color:var(--gold-700); }

  /* #2628 — compteur de non-lus (Messagerie) */
  .ntv2-count{
    display:inline-flex; align-items:center; justify-content:center;
    min-width:18px; height:18px; padding:0 6px; margin-left:2px;
    border-radius:var(--r-pill); background:var(--gold-500); color:#fff; text-shadow: var(--on-gold-shadow);
    font-family:'Geist Mono', ui-monospace, monospace;
    font-size:10px; font-weight:600;
  }
  .ntv2-item.is-active .ntv2-count{ background:#1A1614; color:var(--gold-primary); }

  /* #2628 — CTA « Publier une offre » (recruteur) */
  .ntv2-cta-pub{
    display:inline-flex; align-items:center; gap:7px;
    height:34px; padding:0 15px; border-radius:var(--r-pill); border:none; cursor:pointer;
    font-family:inherit; font-size:12.5px; font-weight:700; white-space:nowrap;
    color:#fff; text-decoration:none;
    background:var(--gold-fill);
    box-shadow:0 3px 12px rgba(163,133,67,.34); text-shadow:0 1px 2px rgba(60,44,10,.45);
    transition:transform .15s, box-shadow .15s;
  }
  .ntv2-cta-pub:hover{ transform:translateY(-1px); box-shadow:0 6px 18px rgba(163,133,67,.42); }
  .ntv2-cta-pub svg{ width:15px; height:15px; flex-shrink:0; }

  /* #2628 — pastille solde Tellers (recruteur) */
  .ntv2-tellers{
    display:inline-flex; align-items:center; gap:7px;
    height:34px; padding:0 13px;
    background:rgba(184,145,42,0.08); border:1px solid rgba(184,145,42,0.22);
    border-radius:var(--r-pill); color:var(--gold-700);
    font-size:12.5px; font-weight:500; white-space:nowrap;
    text-decoration:none;
  }
  .ntv2-tellers .ntv2-tellers-num{ font-weight:700; color:var(--gold-800); }
  .ntv2-tellers svg{ width:15px; height:15px; flex-shrink:0; }
  a.ntv2-tellers:hover{ border-color:rgba(184,145,42,0.45); background:rgba(184,145,42,0.13); }
  /* B3 tâche 032 — R3-26.6 / R3-30.22 : sous le seuil configuré, la pastille
     le dit. Elle ne change pas de chiffre, elle change de ton : le nombre reste
     celui du grand livre. */
  .ntv2-tellers.is-low{ background:var(--amber-50); border-color:var(--amber-200); color:var(--amber-strong); }
  .ntv2-tellers.is-low .ntv2-tellers-num{ color:var(--amber-strong); }

  /* #2628 — badge « Bientôt » / « Brique N » des éléments futurs (même style
     que l'ancien .rt-future-badge de la page Équipe B1) */
  .ntv2-future-badge{
    display:inline-block; font-size:8px; font-weight:700; letter-spacing:.4px;
    text-transform:uppercase; color:var(--gold-600); background:rgba(163,133,67,.10);
    border:1px solid rgba(163,133,67,.20); border-radius:5px; padding:2px 6px;
    vertical-align:middle; white-space:nowrap;
  }

  .ntv2-right{ display:flex; align-items:center; gap:10px; justify-self:end; }

  .ntv2-lang{
    display:inline-flex; align-items:center;
    height:30px; padding:2px; border-radius:99px;
    background:rgba(184,145,42,0.08);
    border:1px solid rgba(184,145,42,0.18);
    font-family:'Geist', sans-serif;
  }
  .ntv2-lang-btn{
    min-width:30px; height:26px; padding:0 9px;
    border-radius:99px; border:none; cursor:pointer;
    font-size:11px; font-weight:700; letter-spacing:0.4px;
    color:var(--gold-deep); background:transparent;
    transition:all 0.15s;
    display:inline-flex; align-items:center; justify-content:center;
    text-decoration:none;
  }
  .ntv2-lang-btn.is-active{
    color:#fff; text-shadow: var(--on-gold-shadow);
    background:var(--gold-fill);
    box-shadow:0 2px 6px rgba(184,145,42,0.35);
  }

  .ntv2-icon{
    position:relative;
    width:36px; height:36px; border-radius:50%;
    background:rgba(184,145,42,0.06);
    border:1px solid rgba(184,145,42,0.15);
    color:#5A4A38;
    display:inline-flex; align-items:center; justify-content:center;
    cursor:pointer; transition:all 0.15s;
  }
  .ntv2-icon:hover{
    background:rgba(212,168,50,0.12);
    border-color:rgba(184,145,42,0.3);
    color:#1A1614;
  }
  /* Review B3, passe 1 — D26. La cloche reste à sa place (règle d'alignement
     sur maquette) mais elle n'est pas portée : elle se lit comme telle et ne
     réagit pas au survol. */
  .ntv2-icon.is-soon{ opacity:0.5; cursor:not-allowed; }
  .ntv2-icon.is-soon:hover{
    background:rgba(184,145,42,0.06);
    border-color:rgba(184,145,42,0.15);
    color:#5A4A38;
  }
  .ntv2-icon-dot{
    position:absolute; top:7px; right:7px;
    width:8px; height:8px; border-radius:50%;
    background:var(--gold-primary);
    border:1.5px solid #fff;
  }

  .ntv2-account-wrap{ position:relative; }
  .ntv2-avatar{
    position:relative;
    width:36px; height:36px; border-radius:50%;
    border:2px solid rgba(184,145,42,0.3);
    background:var(--gold-fill);
    color:#fff; font-family:'Geist', sans-serif;
    font-size:11.5px; font-weight:600; letter-spacing:0.4px;
    display:inline-flex; align-items:center; justify-content:center;
    cursor:pointer; transition:all 0.15s;
    box-shadow:0 2px 8px rgba(184,145,42,0.3);
  }
  .ntv2-avatar:hover{ transform:scale(1.05); }
  .ntv2-avatar-initials{ text-shadow:0 1px 2px rgba(0,0,0,0.2); }
  .ntv2-avatar-check{
    position:absolute; bottom:-2px; right:-2px;
    width:14px; height:14px; border-radius:50%;
    background:var(--gold-primary);
    border:2px solid #fff;
    display:inline-flex; align-items:center; justify-content:center;
  }

  .ntv2-menu{
    position:absolute; top:calc(100% + 10px); right:0;
    min-width:220px;
    background:#fff;
    border:1px solid rgba(184,145,42,0.15);
    border-radius:14px;
    box-shadow:0 12px 32px rgba(26,22,20,0.12);
    padding:8px; z-index:250;
    animation:ntv2-in 0.15s ease;
    display:none;
  }
  .ntv2-menu.is-open{ display:block; }
  @keyframes ntv2-in {
    from { opacity:0; transform:translateY(-4px); }
    to   { opacity:1; transform:none; }
  }
  .ntv2-menu-head{
    font-size:9.5px; font-weight:600; letter-spacing:1.6px; text-transform:uppercase;
    color:#8A7560; padding:8px 11px 4px;
  }
  .ntv2-menu-item{
    display:flex; width:100%; align-items:center; gap:10px;
    padding:9px 11px; border:none; background:none; border-radius:var(--r-sm);
    font-family:inherit; font-size:13px; color:#1A1614; text-align:left;
    cursor:pointer; transition:background 0.12s;
    text-decoration:none;
  }
  .ntv2-menu-item:hover{ background:rgba(212,168,50,0.08); }
  .ntv2-menu-ic{ color:#8A7560; flex-shrink:0; }
  .ntv2-menu-sep{ height:1px; background:rgba(184,145,42,0.12); margin:6px 4px; }
  .ntv2-menu-danger{ color:#A73A2A; }
  /* L'icône de « Se déconnecter » restait rouge grâce à lovable/navbar-v2.css,
     servi par erreur sur les pages produit. Déclaration rapatriée ici. */
  .ntv2-menu-danger .ntv2-menu-ic{ color:#A73A2A; }
  .ntv2-menu-danger:hover{ background:rgba(167,58,42,0.06); }

  .ntv2-menu-header{
    display:flex; align-items:center; gap:12px;
    padding:16px;
    border-bottom:1px solid rgba(184,145,42,0.18);
  }
  .ntv2-menu-header-avatar{
    width:40px; height:40px; border-radius:50%;
    background:var(--gold-fill);
    display:flex; align-items:center; justify-content:center;
    color:#fff; text-shadow: var(--on-gold-shadow); font-weight:700; font-size:14px;
    flex-shrink:0;
  }
  .ntv2-menu-header-name{
    font-size:14px; font-weight:700; color:#1A1614; line-height:1.3;
  }
  .ntv2-menu-header-subtitle{
    font-size:12px; font-weight:500;
    color:hsl(41 43% 45%);
    line-height:1.3; margin-top:2px;
  }

  .ntv2-burger{
    display:none;
    width:36px; height:36px; border-radius:50%;
    background:rgba(184,145,42,0.06);
    border:1px solid rgba(184,145,42,0.15);
    color:#5A4A38;
    align-items:center; justify-content:center;
    cursor:pointer; transition:all 0.15s;
  }
  .ntv2-burger:hover{
    background:rgba(212,168,50,0.12);
    border-color:rgba(184,145,42,0.3);
    color:#1A1614;
  }
  .ntv2-mobile-wrap{ display:none; position:relative; }
  .ntv2-mobile-wrap summary{ list-style:none; }
  .ntv2-mobile-wrap summary::-webkit-details-marker{ display:none; }
  .ntv2-mobile-menu{
    position:absolute; top:calc(100% + 10px); right:0;
    width:min(86vw, 340px);
    background:#fff;
    border:1px solid rgba(184,145,42,0.16);
    border-radius:var(--r-lg);
    box-shadow:0 18px 42px rgba(26,22,20,0.14);
    padding:10px;
    z-index:400;
    max-height:calc(100dvh - 96px); overflow-y:auto; overscroll-behavior:contain;
  }
  /* Vérification staging du 01/10 — à 390, la pastille Auguste (fixée en bas à
     droite, au-dessus de l'en-tête) recouvrait le bouton de langue « EN » en bas
     du menu. Menu ouvert, elle s'efface ; elle revient telle quelle (fenêtre et
     fil intacts) à la fermeture. CSS seul : le menu est un <details>. */
  body:has(.ntv2-mobile-wrap[open]) .auguste-pop,
  body:has(.ntv2-mobile-wrap[open]) .auguste-fab{ display:none; }
  .ntv2-mobile-head{
    display:flex; align-items:center; gap:12px;
    padding:12px;
    border-bottom:1px solid rgba(184,145,42,0.12);
    margin-bottom:8px;
  }
  .ntv2-mobile-avatar{
    width:38px; height:38px; border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    background:var(--gold-fill);
    color:#fff; text-shadow: var(--on-gold-shadow); font-size:12px; font-weight:700;
    flex-shrink:0;
  }
  .ntv2-mobile-name{ font-size:13px; font-weight:700; color:#1A1614; line-height:1.25; }
  .ntv2-mobile-role{ font-size:11px; font-weight:500; color:var(--gold-600); margin-top:2px; }
  .ntv2-mobile-section{
    padding:8px 8px 5px;
    font-size:9.5px; font-weight:700; letter-spacing:1.5px;
    text-transform:uppercase; color:#9A8E80;
  }
  .ntv2-mobile-link{
    display:flex; align-items:center; justify-content:space-between; gap:10px;
    padding:10px 12px;
    border-radius:10px;
    color:#1A1614;
    text-decoration:none;
    font-size:13px; font-weight:600;
  }
  .ntv2-mobile-link:hover,
  .ntv2-mobile-link.is-active{ background:rgba(212,168,50,0.08); }
  /* #4240 — entrées du compte dans le burger : une entrée qui poste est un
     bouton, rendu comme un lien ; le menu défile s'il dépasse l'écran. */
  button.ntv2-mobile-link{ width:100%; border:0; background:none; font-family:inherit; text-align:left; cursor:pointer; }
  .ntv2-mobile-link .ntv2-menu-ic{ display:none; }
  .ntv2-mobile-danger{ color:#A73A2A; }
  .ntv2-mobile-tools{
    display:grid; grid-template-columns:1fr 1fr;
    gap:8px; padding:8px 6px 4px;
  }
  .ntv2-mobile-tool{
    display:flex; align-items:center; justify-content:center; gap:7px;
    padding:10px 8px;
    border-radius:var(--r-md);
    border:1px solid rgba(184,145,42,0.16);
    background:#FFFCF4;
    color:var(--gold-700);
    font-size:12px; font-weight:700;
    text-decoration:none;
  }
  .ntv2-mobile-lang{
    display:flex; gap:6px; padding:8px 6px;
  }
  .ntv2-mobile-lang button,
  .ntv2-mobile-lang a{
    flex:1; height:34px; border-radius:var(--r-pill);
    border:1px solid rgba(184,145,42,0.18);
    background:#fff; color:var(--gold-deep);
    font-size:12px; font-weight:800;
    display:inline-flex; align-items:center; justify-content:center;
    text-decoration:none;
  }
  .ntv2-mobile-lang button.is-active,
  .ntv2-mobile-lang a.is-active{
    background:var(--gold-fill);
    color:var(--on-gold); text-shadow:var(--on-gold-shadow);
  }

  /* ── Public marketing navbar (shared/_navbar) ──────────────────────────
     Extracted verbatim from the inline styles to honor the zero-inline-CSS
     rule. Values kept identical for pixel-perfect parity. */
  .pubnav-logo{ font-family:'Playfair Display', serif; }
  .pubnav-logo-img{ height:28px; width:auto; }

  /* Sélecteur de langue « FR / EN » : texte simple, actif foncé, inactif gris,
     séparés par un slash (aligné sur la maquette client). */
  .pubnav-lang{
    display:inline-flex; align-items:center;
    background:none; border:none; padding:0; height:auto;
    font-size:13px;
  }
  .pubnav-lang-btn{
    min-width:auto; height:auto; padding:0;
    border-radius:0; border:none; cursor:pointer;
    font-size:13px; font-weight:600; letter-spacing:0;
    color:#6E6E6E; background:transparent; box-shadow:none;
    display:inline-flex; align-items:center;
    text-decoration:none;
  }
  .pubnav-lang-btn.is-active{
    color:#0A0A0A; font-weight:700;
    background:none; box-shadow:none;
  }
  .pubnav-lang-btn + .pubnav-lang-btn::before{
    content:"/"; margin:0 6px;
    color:#B7B2A6; font-weight:400;
  }

  /* Le logo ne se comprime plus (voir `.ntv2-logo-img`) : c'est la barre qui
     se resserre, puis le bouton « Publier une offre » qui passe en icone seule
     (son libelle reste dans le `title`), avant le menu burger a 860 px. */
  @media (max-width:1240px){
    .ntv2-bar{ gap:16px; }
    .ntv2-center{ gap:4px; }
  }
  @media (max-width:1200px){
    .ntv2-cta-pub{ padding:0; width:34px; justify-content:center; }
    .ntv2-cta-pub-label{ display:none; }
  }
  @media (max-width:1100px){
    .ntv2-space-pill{ display:none; }
    .ntv2-sep{ display:none; }
    .ntv2-item{ padding:7px 9px; font-size:12.5px; }
  }
  @media (max-width:960px){
    .ntv2-tellers{ display:none; }
    .ntv2-bar{ gap:10px; padding:10px 14px; }
    .ntv2-center{ gap:2px; }
    .ntv2-item{ padding:7px 5px; font-size:12px; }
  }
  @media (max-width:860px){
    .ntv2-frame{ margin:8px 12px 0; }
    .ntv2-bar{ gap:8px; padding:8px 12px; }
    .ntv2-logo-text{ font-size:18px; }
    .ntv2-center{ display:none; }
    .ntv2-mobile-wrap{ display:block; }
    .ntv2-mobile-wrap .ntv2-burger{ display:inline-flex; }
    .ntv2-account-wrap{ display:none; }
    .ntv2-right > .ntv2-lang,
    .ntv2-right > .ntv2-icon{ display:none; }
    /* #2628 — le CTA « Publier » ne disparaît jamais : pastille « + » */
    .ntv2-cta-pub{ padding:0; width:34px; justify-content:center; }
    .ntv2-cta-pub-label{ display:none; }
  }

/* #2256 — sélecteur de langue dans le menu profil (plus dans la barre). */
.ntv2-menu-lang{display:flex;align-items:center;justify-content:space-between;padding:9px 14px 6px;font-size:13px;color:#4A4640;}
.ntv2-menu-lang .ntv2-lang{display:inline-flex;}

/* Retour Tatianna 01/10 (#4240) — menu du compte de la maquette : un libellé
   qui pousse la pastille d'état à droite, et deux tons de pastille (vert pour
   un état acquis, or pour un compteur ou un état à obtenir). */
.ntv2-menu-label{ flex:1; min-width:0; }
.ntv2-menu-pill{
  flex-shrink:0; font-family:var(--font-mono, ui-monospace, monospace); font-size:11px; font-weight:700;
  padding:3px 9px; border-radius:999px; border:1px solid transparent; line-height:1.2;
}
.ntv2-menu-pill--green{ color:#2D7A4F; background:var(--green-50); border-color:var(--green-200); }
.ntv2-menu-pill--gold{ color:var(--gold-700); background:var(--gold-50); border-color:var(--gold-200); }
.ntv2-menu:has(.ntv2-menu-pill){ min-width:260px; }

/* #4279 (01/10) — menu du compte recruteur de la maquette : une entrée qui
   arrive dans une brique suivante (Analytics) est grisée, sans destination,
   avec la même pastille « Bientôt » que « Réseau » dans la barre. */
.ntv2-menu-item.is-soon,
.ntv2-mobile-link.is-soon{ opacity:.5; cursor:not-allowed; }
.ntv2-menu-item.is-soon:hover{ background:none; }
/* Menu en sections : « Abonnement & facturation » et sa pastille de formule
   tiennent sur une ligne. */
.ntv2-menu:has(.ntv2-menu-head){ min-width:290px; }

/* Retour Tatianna 05/10 — décision Loïc du 05/10 : la cloche est active
   (shared/_navbar_bell). Pastille de non-lus réelle, liste des dix dernières
   notifications dans un menu de la même famille que celui du compte. */
.ntv2-bell{ position:relative; }
.ntv2-bell-count{
  position:absolute; top:-4px; right:-5px;
  min-width:18px; height:18px; padding:0 5px;
  display:inline-flex; align-items:center; justify-content:center;
  border-radius:var(--r-pill); border:1.5px solid #fff;
  background:#B0432F; color:#fff;
  font-family:'Geist Mono', ui-monospace, monospace; font-size:10px; font-weight:600; line-height:1;
}
.ntv2-bell-menu{ width:340px; max-width:calc(100vw - 32px); padding:6px; }
.ntv2-bell-head{
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  padding:8px 10px 6px;
}
.ntv2-bell-title{ font-size:13px; font-weight:700; color:#1A1614; }
.ntv2-bell-read-all{
  border:none; background:none; padding:0; cursor:pointer;
  font-family:inherit; font-size:12px; font-weight:600; color:var(--gold-700);
}
.ntv2-bell-read-all:hover{ text-decoration:underline; }
.ntv2-bell-list{ list-style:none; margin:0; padding:0; max-height:min(420px, calc(100dvh - 140px)); overflow-y:auto; overscroll-behavior:contain; }
.ntv2-bell-form{ margin:0; }
.ntv2-bell-item{
  display:flex; align-items:flex-start; gap:10px; width:100%;
  padding:10px; border:none; border-radius:var(--r-sm); background:none;
  font-family:inherit; text-align:left; color:#4A4640;
}
button.ntv2-bell-item{ cursor:pointer; }
button.ntv2-bell-item:hover{ background:rgba(212,168,50,0.08); }
.ntv2-bell-item.is-unread{ background:#FFFBF0; }
.ntv2-bell-dot{ flex-shrink:0; width:8px; height:8px; margin-top:5px; border-radius:50%; background:transparent; }
.ntv2-bell-item.is-unread .ntv2-bell-dot{ background:var(--gold-primary); }
.ntv2-bell-body{ flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; }
.ntv2-bell-item-title{ font-size:13px; font-weight:500; color:#1A1614; overflow-wrap:anywhere; }
.ntv2-bell-item.is-unread .ntv2-bell-item-title{ font-weight:700; }
.ntv2-bell-item-msg{ font-size:12px; color:#6B6660; overflow-wrap:anywhere; }
.ntv2-bell-item-time{ font-size:11px; color:#9A8E80; }
.ntv2-bell-empty{ margin:0; padding:14px 10px 16px; font-size:13px; color:#6B6660; }

/* Sous 860 px la cloche reste dans la barre (à côté du burger) ; son menu
   prend exactement la largeur de la barre (mesuré à 390 px : un menu de
   min(86vw, 340px) calé à droite sortait de 2 px à gauche). */
@media (max-width:860px){
  .ntv2-bar{ position:relative; }
  .ntv2-bell{ position:static; }
  .ntv2-bell-menu{ left:0; right:0; width:auto; max-width:none; }
}

/* #4854 (maquette de Tatianna du 14/10, point 4) : « Publier une offre » ouvre le
   choix offre ou campagne. Le bouton garde son dessin ; la liste est celle des menus
   de la barre, calée sur le bord droit du bouton (il est au bord de l'écran). */
.ntv2-pub-dd{ position:relative; display:inline-flex; }
.ntv2-pub-dd > summary{ list-style:none; }
.ntv2-pub-dd > summary::-webkit-details-marker{ display:none; }
.ntv2-pub-dd[open] .ntv2-pub-menu{ display:block; animation:ntv2-in 0.15s ease; }
.ntv2-pub-menu{ left:auto; right:0; transform:none; width:min(320px, calc(100vw - 24px)); min-width:0; }
