/* N1a (29/10) — navigation par rôle et écrans à onglets. Couleurs et tailles de la maquette validée
   (maquette/nav-v1/index.html v4 : .onglets, .filtres, .bas, .top nav.ecrans). Chargé en dernier. */
:root{--n1-navy:#142e4e;--n1-blue:#216fe6;--n1-ink:#19314d;--n1-muted:#64758a;--n1-line:#dce4ee}

/* Barre du haut (bureau) : 5 entrées du rôle + « Plus ». */
.c1-nav.n1-haut{gap:2px}
.n1-haut .c1-esp{color:#cfe0f5;font-weight:600;font-size:14px;padding:8px 10px;border-radius:8px}
.n1-haut .c1-esp:hover{color:#fff}
.n1-haut .c1-esp.on{background:rgba(255,255,255,.14);color:#fff}
.n1-plus{min-width:240px}
.n1-plus a.c1-e{display:flex;align-items:center;gap:6px;padding:8px 10px;border-radius:8px;font-weight:600;text-decoration:none;color:inherit}
.n1-plus a.c1-e.on{color:var(--n1-blue)}

/* Sous l'entête : titre (= onglet actif), onglets, filtres. */
.n1-ecran{max-width:1320px;margin:0 auto;padding:10px 16px 0}
.n1-titre{font-size:20px;margin:0 0 6px;color:var(--n1-ink)}
.n1-onglets{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;margin:0 -16px 10px;padding:0 16px;border-bottom:1px solid var(--n1-line)}
.n1-onglets::-webkit-scrollbar{display:none}
.n1-onglets a{flex:0 1 auto;white-space:nowrap;text-decoration:none;padding:9px 10px 8px;font-weight:600;font-size:13px;color:var(--n1-muted);border-bottom:3px solid transparent}
.n1-onglets a:hover{color:var(--n1-ink)}
.n1-onglets a.on{color:var(--n1-ink);border-bottom-color:var(--n1-blue)}
.n1-filtres{display:flex;gap:6px;margin-bottom:10px;flex-wrap:wrap}
.n1-filtres a{border:1px solid var(--n1-line);background:#fff;border-radius:16px;padding:4px 10px;font-size:12px;color:var(--n1-ink);text-decoration:none;display:inline-flex;align-items:center;gap:4px}
.n1-filtres a.on{background:var(--n1-navy);color:#fff;border-color:var(--n1-navy)}
.n1-onglets a.c1-v1,.n1-filtres a.c1-v1{opacity:.55}
.n1-onglets a[hidden],.n1-filtres a[hidden]{display:none!important}

/* Téléphone : barre du bas à 5 entrées, sans « Plus ». */
@media (max-width:767px){
  .ux-barre-bas.n1-bas{display:grid;grid-template-columns:repeat(5,1fr);background:#fff;border-top:1px solid var(--n1-line);padding:6px 4px calc(6px + env(safe-area-inset-bottom))}
  .ux-barre-bas.n1-bas a{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:11px;color:var(--n1-muted);background:none;padding:3px 0;text-decoration:none;min-width:0}
  .ux-barre-bas.n1-bas a .ux-icone{width:23px;height:23px;stroke:currentColor}
  .ux-barre-bas.n1-bas a.active{color:var(--n1-blue);font-weight:700;background:none}
  .ux-barre-bas.n1-bas a.active .ux-icone{stroke:var(--n1-blue)}
  .n1-ecran{padding:8px 16px 0}
  .n1-titre{font-size:18px}
  /* Sans feuille « Plus » : l'aide reste dans l'entête, la boîte à idées et la déconnexion dans le bandeau de session. */
  /* N1e : le bandeau vert de session passe dans la feuille ≡ de l'entête. */
  .demo.ux-bandeau,.demo.ux-bandeau:has(.v2-session){display:none!important}
}

/* N1b (29/10) — Cockpit de la maquette v4 (maquette/nav-v1/index.html : p.sous, .carte h3, .tuiles,
   .tuile, .btn.mini.p, .mois-tel). Couleurs et tailles de la maquette ; aucune nouvelle direction. */
.n1-bonjour{margin:2px 0 10px;font-size:14px;color:var(--n1-muted)}
.n1-bonjour a{color:var(--n1-blue);font-weight:600;text-decoration:none}
.aj-traiter .aj-ct{align-items:center}
.n1-tout-voir{margin-left:auto;border:0;background:none;color:var(--n1-blue);font:inherit;font-weight:600;font-size:13px;padding:6px 2px;cursor:pointer}
.aj-traiter .aj-ct .n1-tout-voir+.aj-icone{margin-left:4px}
.aj-traiter .aj-tuiles.n1-tuiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.n1-tuiles .n1-place{min-width:0;display:flex}
.n1-tuiles .n1-place.aj-cachee{display:none}
.n1-tuile{position:relative;display:flex;flex-direction:column;align-items:flex-start;width:100%;box-sizing:border-box;min-height:94px;padding:10px 10px 9px;
  text-align:left;color:var(--n1-ink);background:#fff;border:1px solid var(--n1-line);border-left:4px solid var(--n1-line);border-radius:12px}
.n1-tuile.n1-n0{border-left-color:#bb3b36}
.n1-tuile.n1-n0 .aj-t-chiffre{color:#bb3b36}
.n1-tuile.n1-n1{border-left-color:#d79a2b}
.n1-tuile.n1-prem{box-shadow:0 0 0 2px var(--n1-blue)}
.n1-t-ch{color:inherit;text-decoration:none;border-radius:6px}
.n1-t-ch .aj-t-chiffre{font-size:26px;font-weight:800;line-height:1}
.n1-t-lb{margin-top:4px;padding:0;border:0;background:none;font:inherit;font-weight:700;font-size:13px;color:var(--n1-ink);text-align:left;cursor:pointer}
.n1-t-dt{margin-top:2px;font-size:12px;color:var(--n1-muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.n1-t-geste{margin-top:7px;padding:5px 9px;border:1px solid var(--n1-blue);border-radius:9px;background:var(--n1-blue);color:#fff;font-weight:600;font-size:12px;
  white-space:nowrap;text-decoration:none;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.n1-prem-t{position:absolute;right:8px;bottom:6px;font-size:10px;font-weight:700;color:var(--n1-blue)}

/* Téléphone : « À traiter » d'abord, le mois sur une ligne, puis planning, affaires, transmissions. */
@media (max-width:600px){
  .aj-haut h1,.aj-haut .aj-qui{display:none}
  .aj-grille-jour,.aj-grille-jour.aj-sans-mois{grid-template-areas:'traiter' 'mois' 'planning' 'milieu'}
  .aj-z-compte,.aj-z-tout,.aj-pouce{display:none!important}
  .aj-page:not(.aj-tel-tout) .aj-z-mois,.aj-page .aj-z-mois{display:block}
  .aj-page:not(.aj-tel-tout) :is(.aj-z-milieu,.aj-z-planning),.aj-page :is(.aj-z-milieu,.aj-z-planning){display:flex}
  .aj-page{padding-bottom:calc(var(--tel-bas,64px) + 12px)}
  .aj-traiter{padding:14px;border-radius:14px}
  .aj-traiter .aj-ct h2{font-size:15px}
  .aj-traiter .aj-tuiles.n1-tuiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .n1-tuiles .n1-place.n1-large{grid-column:1/-1}
  .n1-t-dt{-webkit-line-clamp:4}
  /* Le mois : une ligne (ventes ; marge pour le gérant seulement). */
  .aj-bandeau,.aj-bandeau[data-compteurs]{display:flex;gap:12px;align-items:center;padding:9px 12px;border-radius:12px;overflow:hidden}
  .aj-bandeau::before,.aj-bandeau .aj-rail,.aj-bandeau .aj-k-s,.aj-bandeau .aj-k-t,.aj-bandeau .aj-att{display:none}
  .aj-bandeau :is([data-compteur="age"],[data-compteur="immobilise"],[data-compteur="delai"]){display:none}
  .aj-page:not([data-poste="gerant"]) .aj-bandeau :is([data-compteur="marge"],[data-compteur="marge-silence"]){display:none}
  .aj-bandeau .aj-k{flex:1 1 auto;flex-direction:row;align-items:center;gap:6px;min-width:0;padding:0;border:0;text-decoration:none;white-space:nowrap}
  .aj-bandeau .aj-k+.aj-k{border-left:1px solid hsl(0 0% 100%/.14);padding-left:10px}
  .aj-bandeau .aj-k-lib{font-size:13px;overflow:hidden;text-overflow:ellipsis;min-width:0}
  .aj-bandeau .aj-k-v{display:flex;align-items:center;gap:4px;flex:0 0 auto}
  .aj-bandeau .aj-k-n{font-size:15px}
  .aj-bandeau .aj-ecart{font-size:11px;padding:1px 7px;border-radius:10px}
}

/* ── N1c (29/10) : « + Nouveau » en feuille de 4 choix (maquette nav-v1 : cartes titre + aide) ── */
.ux-nouveau.n1-nouveau{display:block}
.n1-nouveau-m{min-width:260px;gap:2px}
.n1-nouveau-t{margin:4px 10px 6px;font-size:var(--ap-t-s);font-weight:var(--ap-g-titre);color:hsl(var(--ap-doux));text-transform:uppercase;letter-spacing:.04em}
.ux-nouveau-e.n1-nouveau-e{flex-direction:column;align-items:flex-start;justify-content:center;gap:1px;padding:8px 12px;white-space:normal;min-height:48px}
.n1-nouveau-e b{font-weight:var(--ap-g-titre)}
.n1-nouveau-e small{font-size:var(--ap-t-s);color:hsl(var(--ap-doux));line-height:1.3}
/* Au téléphone : le « + » reste dans l'entête (maquette), la feuille s'ouvre en bas d'écran. */
@media (max-width:767px){
  .ux-nouveau.n1-nouveau{display:block}
  .ux-nouveau.n1-nouveau>summary{padding:0 12px;font-size:20px;min-width:40px;justify-content:center}
  .n1-nouveau .ux-nouveau-mot{display:none}
  .n1-nouveau-m{position:fixed;left:0;right:0;top:auto;bottom:0;min-width:0;border-radius:16px 16px 0 0;padding:10px 10px calc(10px + env(safe-area-inset-bottom));z-index:80}
}

/* ── N1e (29/10) : entête du téléphone = maquette v4, largeur 390 sans débordement, doublons masqués ── */
.n1-tel-titre,.n1-menu-b,.n1-session-tel,.n1-voile-tel{display:none}
.n1-outils{display:contents}
@media (max-width:767px){
  html,body{max-width:100%;overflow-x:clip}
  .v2-entete.c1-entete{display:flex;align-items:center;gap:6px;flex-wrap:nowrap;padding:calc(6px + env(safe-area-inset-top)) 12px 6px;min-height:calc(56px + env(safe-area-inset-top));box-sizing:border-box}
  .v2-entete .v2-marque{flex:0 0 auto;gap:6px}
  .v2-entete .v2-marque-texte,.v2-entete .v2-marque-v2,.v2-entete .v2-garage-actif,.v2-entete .n1-haut{display:none!important}
  .n1-tel-titre{display:block;flex:1 1 auto;min-width:0;font-size:17px;font-weight:700;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .v2-entete :is(.ux-loupe,.n1-nouveau>summary,.n1-menu-b){min-width:44px;min-height:44px;box-sizing:border-box}
  .n1-menu-b{display:inline-grid;place-items:center;flex:0 0 auto;border:0;border-radius:10px;background:rgba(255,255,255,.12);color:#fff;font-size:22px;line-height:1;padding:0;cursor:pointer}
  .n1-outils{display:none}
  .n1-voile-tel.ouvert{display:block;position:fixed;inset:0;z-index:199;background:hsl(216 50% 10%/.35)}
  .n1-outils.ouvert{display:flex;flex-wrap:wrap;align-items:center;gap:8px;position:fixed;left:0;right:0;bottom:0;z-index:200;max-height:80vh;overflow:auto;
    padding:14px 16px calc(14px + env(safe-area-inset-bottom));background:#fff;color:var(--n1-ink);border-radius:16px 16px 0 0;box-shadow:0 -8px 30px rgba(0,0,0,.2)}
  .n1-outils.ouvert > *{flex:0 0 auto}
  .n1-outils.ouvert :is(button,a,summary){min-height:44px}
  .n1-outils.ouvert .ux-aide-bouton{display:inline-flex;align-items:center;gap:6px;width:auto;padding:0 14px;border-radius:10px}
  .n1-outils.ouvert .ux-aide-bouton::after{content:"Aide";font-weight:600}
  .n1-outils.ouvert .ux-pastille-essai{display:none}
  .n1-outils.ouvert .n1-session-tel{display:flex;flex-direction:column;align-items:stretch;flex:1 0 100%;gap:2px;margin-top:6px;border-top:1px solid var(--n1-line);padding-top:8px}
  .n1-session-qui{font-size:13px;color:var(--n1-muted);padding:4px 2px 6px}
  .n1-session-e{display:flex;align-items:center;min-height:44px;padding:0 4px;border:0;border-bottom:1px solid var(--n1-line);background:none;font:inherit;font-weight:600;font-size:15px;color:var(--n1-ink);text-align:left;text-decoration:none;cursor:pointer}
  .n1-session-e:last-child{border-bottom:0;color:#bb3b36}
  /* Barre du bas : fixe, au-dessus de la zone de sécurité ; la page ne passe pas dessous. */
  .ux-barre-bas.n1-bas{position:fixed;left:0;right:0;bottom:0;z-index:60;height:auto;min-height:56px;box-sizing:border-box}
  .ux-barre-bas.n1-bas a{min-height:44px;justify-content:center}
  .ux-barre-bas.n1-bas a span{max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:11px}
  main.page{padding-bottom:calc(76px + env(safe-area-inset-bottom))!important}
  main.page,.n1-ecran,.c1-fil{max-width:100vw;box-sizing:border-box}
  .aj-z-mois,.aj-bandeau{min-width:0;max-width:100%;box-sizing:border-box}
}

/* Double navigation : les sélecteurs propres à l'ancien écran qui redisent les onglets N1. */
main.n1-a-onglets :is(.ux-gestion-tete,.aw-tabs.v2-onglets-ecran,.ux-at-onglets,.com-bascule,.ux-com-onglets,.st-seg.st-vues,.ag-seg.ag-vues){display:none!important}
main.n1-a-onglets .ag-seg[aria-label="Métier"]{display:none!important}
.n1-ecran{box-sizing:border-box}

/* Cockpit au bureau : cartes « À traiter » lisibles, pas d'entrée délavée, « Ce qui compte » masqué s'il est vide. */
.aj-page :is(.aj-st,.aj-tuile,.aj-carte,.aj-lg,.aj-ev,.aj-it,.aj-bandeau,.aj-pipe,.aj-compte,.aj-ligne,.aj-rail i,.aj-barre,.aj-pouls,.aj-parc,.aj-parc *){animation:none!important;opacity:1}
.aj-z-compte:has(.aj-compte[data-compte="0"]),.aj-compte[data-compte="0"]{display:none!important}
@media (min-width:1024px){
  .aj-traiter .aj-tuiles.n1-tuiles{grid-template-columns:repeat(auto-fill,minmax(185px,1fr))}
  .n1-t-lb,.n1-t-dt{overflow-wrap:anywhere}
  .aj-flux-v1 .aj-st{flex:1 1 var(--w);min-width:44px}
}
.n1-t-geste{white-space:normal;overflow:visible;text-overflow:clip;text-align:left}
@media (max-width:767px){
  .n1-outils.ouvert :is(button,a,summary){color:var(--n1-ink)!important;background-color:#f2f5f9}
  .n1-outils.ouvert :is(button,a,summary) svg{stroke:currentColor;color:var(--n1-ink)}
  .n1-outils.ouvert .n1-session-e{background:none}
  /* Le titre de l'écran est dans l'entête : pas de second titre sous l'entête au téléphone. */
  .n1-ecran .n1-titre{display:none}
  .st-dd small{display:block;white-space:nowrap}
}
/* La feuille ≡ vit dans l'entête (contexte d'empilement plus bas que la barre du bas) : la barre s'efface pendant qu'elle est ouverte. */
@media (max-width:767px){body:has(.n1-outils.ouvert) .ux-barre-bas.n1-bas{display:none}}

/* N1f (29/10) : Cockpit = un seul titre (« Bonjour <prénom>, <date> · Tour de contrôle »), sur la ligne de
   « Masquer les montants » et de l'heure ; « Aujourd'hui · poste · date » reste lisible aux lecteurs d'écran seulement. */
.aj-haut{align-items:center}
.aj-haut h1,.aj-haut .aj-qui{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.aj-haut .n1-bonjour{margin:0;flex:0 1 auto;min-width:0}
/* N1f : au bureau, le bloc N1 (titre, onglets, filtres) suit la géométrie de `main.page` (1 800 px centrés, 24 px de
   marge) : son bord gauche est celui du contenu de chaque écran. */
@media (min-width:601px){
  .n1-ecran{max-width:1800px;margin:0 auto;padding:10px var(--ap-e5,24px) 0}
  .n1-onglets{margin:0 0 10px;padding:0}
  .n1-onglets a:first-child{padding-left:0}
}

/* ── N1g (29/10) ───────────────────────────────────────────────────────────────────────────── */
/* Réglages du gérant : dans la feuille ≡ au téléphone, dans le conteneur des outils au bureau. */
.n1-reglages-e{display:inline-flex;align-items:center;min-height:36px;padding:0 10px;border-radius:10px;color:inherit;text-decoration:none;font-size:13px;font-weight:600}
.n1-reglages-e:hover{background:rgba(255,255,255,.12)}
/* Cockpit : le texte de chaque tuile tient en 2 lignes (nom + une raison), aussi au téléphone. */
.n1-t-lb{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;text-align:left}
.n1-t-dt{-webkit-line-clamp:2!important}
.n1-route-voir{float:right;font-weight:600}
@media (max-width:600px){
  /* « Chercher » flottant retiré des écrans N1 (la recherche est dans l'entête) ; l'accès du pouce à la recherche reste la loupe. */
  body:has(main.n1-a-onglets) .ap-pouce{display:none!important}
  /* La bulle de remarques : petite, au bord, posée sur le haut de la barre du bas (ne couvre plus les prix). */
  body:has(.n1-bas) .bl-bouton{right:2px;bottom:calc(60px + env(safe-area-inset-bottom));width:30px;height:30px;font-size:15px;opacity:.85}
  body:has(.n1-bas) .bl-accueil{bottom:calc(100px + env(safe-area-inset-bottom))}
  body:has(.n1-bas) main.page:not(:has(.pv-tel)):not(:has(.dm)){padding-bottom:calc(84px + env(safe-area-inset-bottom))}
  /* Stock : une seule rangée de commandes avant la première voiture — les pastilles N1 (Sans photos ·
     Pas en ligne · Plus anciens) et le bouton ⋯. Liste / Tableau, la recherche de la liste, Étapes,
     Filtres, Affichage, ⤓ et « À traiter » sont regroupés sous ⋯ (ouvert : ils réapparaissent). */
  body:has(main.n1-a-onglets .st[data-stock]) .n1-ecran[data-ecran=stock] .n1-filtres{padding-right:52px}
  body:has(main.n1-a-onglets .st[data-stock]) .n1-ecran[data-ecran=stock] .n1-filtres a:is([href="/voitures?vue=liste"],[href="/voitures?vue=tableau"]){display:none}
  main.n1-a-onglets{position:relative}
  main.n1-a-onglets .st[data-stock] .st-ligne{flex-wrap:wrap}
  main.n1-a-onglets .st[data-stock] .st-ligne:not(:has(details.st-plus[open]))>:not(.st-plus){display:none!important}
  main.n1-a-onglets .st[data-stock] .st-ligne:not(:has(details.st-plus[open])){position:absolute;right:12px;top:-50px;margin:0;z-index:5}
  main.n1-a-onglets .st[data-stock]:not(:has(details.st-plus[open])) .st-bandeau{display:none!important}
  main.n1-a-onglets .st[data-stock] details.st-plus>summary{width:40px;height:36px;display:flex;align-items:center;justify-content:center}
  /* Cartes du Stock : année et km passent à la ligne plutôt que de glisser sous « prix depuis N j ». */
  .st[data-stock] .st-ln .cA{display:flex;flex-wrap:wrap;column-gap:6px;row-gap:0;min-width:0;overflow:hidden}
  .st[data-stock] .st-ln .cA small{margin-left:0!important;white-space:nowrap}
  .st[data-stock] .st-ln .cA small[title]{display:none}
  .st[data-stock] .st-ln .cP{min-width:0;max-width:150px}
  .st[data-stock] .st-ln .cP .st-jg{white-space:nowrap}
  .st[data-stock] .st-ln .st-atr{white-space:normal;overflow:visible;text-overflow:clip;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
}

/* ── N1h (29/10) : Cockpit et Stock au téléphone, au plus près de la maquette v4 ───────────────── */
.n1-lib-tel{display:none}
/* Tuile serrée : chiffre, titre (2 lignes au plus), phrase, geste — sans trou. Le chiffre et le titre
   restent des liens/boutons, mais sans la hauteur minimale de 44 px des cibles isolées (la tuile entière
   fait plus de 44 px) ; le geste garde ses 44 px, texte centré, largeur au contenu. */
main.page .n1-tuile .n1-t-ch{display:block;min-height:0;line-height:1}
main.page .n1-tuile .n1-t-lb{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:0;min-width:0;margin-top:6px;line-height:1.25;text-align:left;justify-content:flex-start}
main.page .n1-tuile .n1-t-dt{margin-top:3px;line-height:1.35}
main.page .n1-tuile .n1-t-geste{display:inline-flex;align-items:center;justify-content:center;align-self:flex-start;width:auto;max-width:100%;box-sizing:border-box;
  min-height:36px;margin-top:8px;padding:0 12px;line-height:1.2;text-align:center}
@media (max-width:600px){
  main.page .n1-tuile{padding:12px 12px 12px 14px}
  main.page .n1-tuile .n1-t-ch .aj-t-chiffre{font-size:24px}
  main.page .n1-tuile .n1-t-lb{font-size:15px}
  main.page .n1-tuile .n1-t-dt{font-size:13px}
  main.page .n1-tuile .n1-t-geste{min-height:44px;padding:0 14px;font-size:14px;border-radius:10px}
  main.page .n1-tuile.n1-prem .n1-t-geste{margin-bottom:10px}
  /* « Voir les N autres » : un lien sous les tuiles, comme la maquette. */
  .aj-traiter .aj-autres{display:flex;align-items:center;justify-content:center;width:100%;margin-top:8px;color:var(--n1-blue);font-weight:700}
  /* Le mois sur une ligne : « Octobre · Ventes 4 ». */
  .aj-bandeau .n1-lib-long{display:none}
  .aj-bandeau .n1-lib-tel{display:inline;text-transform:none;letter-spacing:0;font-weight:600}
  /* Écrans à onglets : le retour « ‹ Aujourd'hui » du fil redit la barre du bas — masqué. */
  body:has(main.n1-a-onglets) .c1-fil{display:none!important}
  /* La bulle de remarques : à gauche, au-dessus de la barre du bas (ne touche plus les prix à droite). */
  body:has(main.n1-a-onglets .st[data-stock]) .bl-bouton{right:auto;left:4px}
  /* Stock : « moins de 10 photos » sur sa ligne entière, le kilométrage en entier. */
  .st[data-stock] .st-ln .st-atr{display:block;-webkit-line-clamp:unset;white-space:normal;overflow:visible;flex:1 0 100%}
  .st[data-stock] .st-ln .cA{overflow:visible}
  .st[data-stock] .st-ln .cA small{font-size:12px}
}
/* N1h : le texte du geste reste blanc sur le bleu (la couleur des liens de la page ne l'emporte pas). */
main.page .n1-tuile a.n1-t-geste,main.page .n1-tuile a.n1-t-geste:visited{color:#fff}
@media (max-width:600px){
  /* Stock : la première voiture suit les pastilles, sans trou. */
  body:has(main.n1-a-onglets .st[data-stock]) .n1-ecran[data-ecran=stock] .n1-filtres{margin-bottom:4px}
  main.n1-a-onglets .st[data-stock]{padding-top:0}
  main.n1-a-onglets .st[data-stock] .st-liste{margin-top:0}
  main.n1-a-onglets .st[data-stock] .st-ligne:not(:has(details.st-plus[open])){min-height:0}
  .st[data-stock] .st-ln .st-atr{white-space:nowrap;font-size:13px}
}

/* N1i (29/10) : la bulle de remarques au téléphone, sur TOUS les écrans à barre du bas : à gauche,
   au-dessus de la barre (30 px), jamais sur les prix à droite ; masquée quand la feuille ≡ ou
   « + Nouveau » est ouverte. */
@media (max-width:600px){
  body:has(.n1-bas) .bl-bouton{right:auto!important;left:4px;bottom:calc(62px + env(safe-area-inset-bottom));width:30px;height:30px;font-size:15px}
  body:has(.n1-bas) .bl-accueil{bottom:calc(100px + env(safe-area-inset-bottom))}
  body:has(.n1-outils.ouvert) .bl-bouton,body:has(details.n1-nouveau[open]) .bl-bouton,
  body:has(.n1-outils.ouvert) .bl-accueil,body:has(details.n1-nouveau[open]) .bl-accueil{display:none!important}
}

/* N1j (29/10) : au bureau, la recherche de l'entête garde une largeur lisible (« Rechercher » entier) ;
   « Réglages » (gérant) passe sous l'icône ⚙ : il apparaît au survol ou au clavier, sans quitter l'entête. */
@media (min-width:601px){
  header.v2-entete .ux-barre-recherche{flex:0 0 auto;min-width:180px}
  header.v2-entete .ux-barre-recherche input{min-width:180px;width:180px}
  .n1-reglages-g{position:relative;display:inline-flex;align-items:center}
  .n1-reglages-g .n1-reglages-e{display:none;position:absolute;top:100%;right:0;z-index:300;white-space:nowrap;
    background:var(--n1-ink,#16213a);color:#fff;box-shadow:0 6px 18px rgba(0,0,0,.18);min-height:36px}
  .n1-reglages-g:is(:hover,:focus-within) .n1-reglages-e{display:inline-flex}
}
@media (max-width:600px){.n1-reglages-g{display:contents}}
/* N1j (29/10) : au téléphone, textes utiles ≥ 15 px (tête « Bonjour … », « Octobre · Ventes ») et chiffre des tuiles
   touchable sur 44 × 44 px sans grandir la tuile (marges négatives qui compensent la zone de toucher). */
@media (max-width:600px){
  .n1-bonjour,.aj-haut .n1-bonjour{font-size:15px}
  .aj-bandeau .n1-lib-tel{font-size:15px}
  main.page .n1-tuile .n1-t-ch{display:flex;align-items:center;box-sizing:border-box;min-height:44px;min-width:44px;width:max-content;padding:10px 14px 10px 0;margin:-10px 0 -10px 0}
}

/* ── N1k (29/10) : au téléphone, aucun texte utile sous 15 px et toutes les cibles ≥ 44 px (règles du lot D,
   recette d_telephone) ; la bulle garde son rond de 30 px visible, mais sa cible fait 44 px. ─────────── */
@media (max-width:600px){
  main.page .n1-tuile .n1-t-dt,main.page .n1-tuile .n1-t-geste,.aj-traiter .n1-tout-voir{font-size:15px}
  .aj-bandeau .aj-ecart{font-size:15px}
  body:has(.n1-bas) .bl-bouton{width:44px;height:44px;background:radial-gradient(circle,var(--bl-violet) 0 14.5px,transparent 15px);box-shadow:none}
}
/* N1k : la consigne d'une alerte de stock (BEN7), une ligne discrète sous la phrase. */
main.page .n1-tuile .n1-t-cs{margin-top:2px;font-size:12px;font-style:italic;color:var(--n1-muted);display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
@media (max-width:600px){main.page .n1-tuile .n1-t-cs{font-size:15px;-webkit-line-clamp:2}}

/* ── N1b-1 (29/10, F10 « densité ») : au téléphone, aucune ligne perdue en haut ; entête ≤ 125 px ;
   Cockpit = une situation par ligne ; Stock et Offres ≥ 4 cartes dans le premier écran. Couleurs et
   typographie inchangées (textes utiles ≥ 15 px, cibles ≥ 44 px : la zone de toucher déborde par marges négatives). ── */
@media (max-width:600px){
  /* Barre du haut : 48 px (titre, loupe, +, ≡ en cibles de 44 px), sans marge perdue. */
  .v2-entete.c1-entete{min-height:calc(48px + env(safe-area-inset-top));padding:calc(2px + env(safe-area-inset-top)) 6px 2px 10px;gap:4px}
  .v2-entete :is(.ux-loupe,.n1-nouveau>summary,.n1-menu-b){height:44px}
  /* Onglets en segments (une rangée défilante) puis filtres sur UNE rangée défilante, sans retour à la ligne. */
  .n1-ecran{padding:0 12px 0}
  .n1-onglets{margin:0 -12px 4px;padding:0 12px;gap:2px}
  .n1-onglets a{padding:7px 9px 5px;min-height:36px;box-sizing:border-box;display:inline-flex;align-items:center}
  .n1-filtres{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:0 -12px 4px;padding:0 12px;gap:6px}
  .n1-filtres::-webkit-scrollbar{display:none}
  .n1-filtres a{flex:0 0 auto;white-space:nowrap;min-height:30px;box-sizing:border-box}
  body:has(main.n1-a-onglets .st[data-stock]) .n1-ecran[data-ecran=stock] .n1-filtres{margin-bottom:4px;padding-right:56px}
  main.n1-a-onglets .st[data-stock] .st-ligne:not(:has(details.st-plus[open])){top:-35px;right:8px}
  main.n1-a-onglets .st[data-stock] details.st-plus>summary{height:30px}
  main.page:has(.n1-ecran),main.n1-a-onglets{padding-top:0!important;margin-top:0!important}

  /* Cockpit : la tête de page ne prend plus de place (masquer les montants et l'heure restent lus par les lecteurs d'écran). */
  .aj-page{padding-top:4px!important}
  .aj-page>.aj-haut{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);margin:0;padding:0}
  .aj-grille-jour{gap:8px!important;margin-top:0!important}
  .aj-traiter{padding:4px 8px 8px!important}
  .aj-traiter .aj-ct{min-height:32px;height:32px;margin:0 0 2px;gap:8px;flex-wrap:nowrap}
  .aj-traiter .aj-ct h2{margin:0;white-space:nowrap}
  .aj-traiter .aj-ct :is(.n1-tout-voir,.aj-icone){min-height:44px;min-width:44px;margin:-6px 0;padding:0 6px;box-sizing:border-box;border:0;background:none}
  /* Une situation = une ligne : chiffre | titre + raison | geste. */
  .aj-traiter .aj-tuiles.n1-tuiles{display:flex!important;flex-direction:column;gap:4px}
  .n1-tuiles .n1-place,.n1-tuiles .n1-place.n1-large{grid-column:auto;display:flex}
  .n1-tuiles .n1-place.aj-cachee{display:none}
  main.page .n1-tuile{display:grid;grid-template-columns:44px minmax(0,1fr) auto;grid-template-areas:"ch lb ge" "ch dt ge" "ch cs ge";
    align-items:center;column-gap:8px;row-gap:0;min-height:52px;padding:3px 6px 3px 4px;border-radius:10px}
  main.page .n1-tuile .n1-t-ch{grid-area:ch;justify-content:center;width:44px;min-width:44px;padding:0;margin:0;align-self:center}
  main.page .n1-tuile .n1-t-ch .aj-t-chiffre{font-size:24px}
  main.page .n1-tuile .n1-t-lb{grid-area:lb;margin:0;-webkit-line-clamp:1;line-height:1.2;align-self:end}
  main.page .n1-tuile .n1-t-dt{grid-area:dt;margin:0;-webkit-line-clamp:1!important;line-height:1.25;align-self:start}
  main.page .n1-tuile .n1-t-cs{grid-area:cs;margin:0;-webkit-line-clamp:1;line-height:1.2}
  main.page .n1-tuile .n1-t-geste{grid-area:ge;margin:0!important;min-height:44px;max-width:124px;padding:0 10px;line-height:1.1;white-space:normal;align-self:center}
  main.page .n1-tuile.n1-prem{box-shadow:0 0 0 2px var(--n1-blue)}
  main.page .n1-tuile .n1-prem-t{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .aj-traiter .aj-autres{min-height:44px;margin:2px 0 -6px}
  /* Le mois : une ligne de 32 px au plus. */
  .aj-bandeau,.aj-bandeau[data-compteurs]{min-height:0;max-height:32px;padding:2px 12px!important;border-radius:10px}

  /* Stock : carte serrée — photo 72 × 54, nom et version, repères ; prix à droite ; année · km ; âge et état. */
  main.n1-a-onglets .st[data-stock] .st-liste{gap:6px}
  main.page .st[data-stock] .st-ln{grid-template-columns:72px minmax(0,1fr) auto!important;grid-template-rows:auto auto auto;gap:0 8px;padding:5px 8px 5px 6px!important;align-items:start}
  main.page .st[data-stock] .st-ln .st-ph{grid-column:1;grid-row:1/3;width:72px;height:54px;align-self:start}
  main.page .st[data-stock] .st-ln .st-ve{grid-column:2;grid-row:1;line-height:1.2;min-width:0}
  main.page .st[data-stock] .st-ln .st-ve>*{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  main.page .st[data-stock] .st-ln .st-ve .st-id{display:flex;flex-wrap:nowrap;align-items:center;gap:4px;margin:1px 0 0}
  main.page .st[data-stock] .st-ln .cA{grid-column:2;grid-row:2;flex-wrap:nowrap;white-space:nowrap;line-height:1.2;align-self:end}
  main.page .st[data-stock] .st-ln .cA small{display:inline}
  main.page .st[data-stock] .st-ln .cP{grid-column:3;grid-row:1/3;justify-self:end;text-align:right;line-height:1.2;display:flex;flex-direction:column;align-items:flex-end;gap:0}
  main.page .st[data-stock] .st-ln .cJ{grid-column:1/3;grid-row:3;display:flex;flex-wrap:wrap;align-items:center;column-gap:8px;row-gap:0;margin-top:3px;line-height:1.2}
  main.page .st[data-stock] .st-ln .cJ .st-atr{flex:0 1 auto;display:inline;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
  main.page .st[data-stock] .st-ln .cT{grid-column:3;grid-row:3;align-self:end;margin-top:3px}

  /* Offres : la même carte serrée ; « Faire une offre » est dans « + » (feuille Nouveau), le compte de la V1 sous ⋯. */
  main.n1-a-onglets .or [data-geste^="faire-une-offre"]{display:none}
  main.n1-a-onglets .or-v1{display:none}
  main.n1-a-onglets .or-liste{gap:6px}
  main.page .or-ln{grid-template-columns:72px minmax(0,1fr) auto!important;gap:0 8px;padding:5px 8px 5px 6px;align-items:start}
  main.page .or-ln .or-ph{grid-row:1/3;width:72px;height:54px}
  main.page .or-ln .or-ve{line-height:1.2;min-width:0}
  main.page .or-ln .or-ve>*{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  main.page .or-ln .t2a,main.page .or-ln .t2b{line-height:1.2;align-self:end}
  main.page .or-ln .t2b{display:flex;flex-direction:column;align-items:flex-end}
  main.page .or-ln :is(.t3a,.t3b){display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;gap:6px;margin-top:3px;line-height:1.2;white-space:nowrap;min-width:0}
}
/* N1b-1, 2ᵉ passe (mesures F10) : la barre du haut l'emporte sur les 56 px de telephone-390/ux-c1 ; titre et raison d'une
   situation sur une ligne chacun (la cible du titre garde 44 px par marges négatives) ; Offres : la recherche, « Tout » et ⋯
   montent à droite de la rangée des filtres ; carte d'offre sur trois lignes serrées. */
@media (max-width:600px){
  header.v2-entete,header.v2-entete.c1-entete{height:calc(48px + env(safe-area-inset-top,0px))!important;min-height:calc(48px + env(safe-area-inset-top,0px))!important}
  .n1-onglets{margin-bottom:2px}
  .n1-filtres{margin-bottom:2px}
  main.page .n1-tuile .n1-t-lb{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-height:44px;margin:-12px 0 -12px;padding:12px 0 0;box-sizing:border-box;width:100%}
  main.page .n1-tuile .n1-t-dt{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  main.page .n1-tuile .n1-t-geste{max-width:150px}
  main.page .n1-tuile{min-height:52px;padding-top:4px;padding-bottom:4px}
  /* Offres */
  body:has(main.n1-a-onglets section.or[data-ecran=mes-offres]) .n1-filtres{padding-right:262px}
  main.n1-a-onglets section.or[data-ecran=mes-offres]>.or-band{position:absolute;top:-38px;right:8px;width:250px;height:36px;min-height:0;margin:0;flex-wrap:nowrap;gap:4px;z-index:5}
  main.n1-a-onglets section.or[data-ecran=mes-offres]>.or-band>*{height:36px;min-height:36px}
  main.n1-a-onglets section.or[data-ecran=mes-offres]>.or-band .or-cherche{flex:1 1 auto;min-width:0;width:auto;order:-1}
  main.n1-a-onglets section.or[data-ecran=mes-offres]>.or-band :is(input,summary){height:36px;min-height:36px;box-sizing:border-box}
  main.n1-a-onglets section.or[data-ecran=mes-offres]{padding-top:0;margin-top:0}
  main.n1-a-onglets section.or[data-ecran=mes-offres] .or-zone{margin-top:0;padding-top:0}
  main.page .or-ln .or-ve{display:flex;flex-wrap:wrap;align-items:center;column-gap:6px}
  main.page .or-ln .or-ve>b{flex:1 0 100%}
  main.page .or-ln .or-ve>span{flex:0 1 auto;min-width:0}
  main.page .or-ln .or-ve .or-rep{display:inline-flex;gap:4px}
  main.page .or-ln .t2b{flex-direction:row;align-items:baseline;gap:6px;white-space:nowrap}
  main.page .or-ln .t2a{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
  main.page .or-ln :is(.t3a,.t3b){overflow:hidden}
  main.page .or-ln :is(.t3a,.t3b)>*{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  main.page .or-ln .t3a>:first-child,main.page .or-ln .t3b>:first-child{flex:0 0 auto}
}
/* N1b-1, 3ᵉ passe : Cockpit — le geste garde 44 px de cible sans grandir la ligne (marges négatives), plus de blanc sous
   l'entête ; Stock — nom · version · teinte en 3 lignes à gauche, prix, âge du prix, TVA, année · km à droite, puis
   « Au parc » et l'état sur une ligne (la barre de couleur de l'âge du prix est redite par la couleur du texte). */
@media (max-width:600px){
  main.page:has(.aj-page){padding-top:4px!important}
  .aj-page{padding-top:0!important;margin-top:0!important}
  main.page .n1-tuile{row-gap:2px;min-height:52px;padding-top:3px;padding-bottom:3px}
  main.page .n1-tuile .n1-t-geste{min-height:44px;margin:-4px 0!important;max-width:136px}
  main.page .st[data-stock] .st-ln{grid-template-rows:auto auto!important}
  main.page .st[data-stock] .st-ln .st-ph{grid-row:1}
  main.page .st[data-stock] .st-ln .st-ve{display:flex;flex-wrap:wrap;column-gap:4px}
  main.page .st[data-stock] .st-ln .st-ve>b,main.page .st[data-stock] .st-ln .st-ve>.st-id{flex:1 0 100%}
  main.page .st[data-stock] .st-ln .st-ve>span:not(.st-id){flex:0 1 auto;max-width:100%}
  main.page .st[data-stock] .st-ln .st-ve>span:nth-child(2)::after{content:" ·"}
  main.page .st[data-stock] .st-ln .cP{grid-row:1;max-width:128px}
  main.page .st[data-stock] .st-ln .cP .st-jg i{display:none}
  main.page .st[data-stock] .st-ln .cP:has(+ *) {}
  main.page .st[data-stock] .st-ln .cA{grid-column:3;grid-row:1;align-self:end;justify-self:end;margin-top:0}
  main.page .st[data-stock] .st-ln .cP{align-self:start;padding-bottom:20px}
  main.page .st[data-stock] .st-ln .cJ{grid-column:1/3;grid-row:2;flex-wrap:nowrap;overflow:hidden;min-width:0}
  main.page .st[data-stock] .st-ln .cT{grid-row:2;align-self:center}
}

/* ── N1b-2 (29/10, plan v1.4) : un seul niveau. Bureau ≥ 768 px (décision du 29/10) : COLONNE DE GAUCHE (repliée jusqu’à 1 280 px) ; 601–767 px : comme le téléphone,
   barre du haut réduite à titre · recherche · + Nouveau · cloche · ≡ compte. Téléphone : feuille ≡ à plat. ── */
.n1-colonne,.n1-feuille,.n1-g-court{display:none}
@media (max-width:767px){
  .n1-outils.ouvert .n1-feuille{display:flex;flex-direction:column;flex:1 0 100%;border-bottom:1px solid var(--n1-line);padding-bottom:6px;margin-bottom:2px}
  .n1-outils.ouvert a.n1-feuille-e{display:flex;align-items:center;gap:12px;min-height:44px;padding:0 8px;font-weight:600;font-size:15px;text-decoration:none;background:none!important}
  .n1-feuille-e .ux-icone{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;flex:0 0 auto}
  /* Cockpit : le geste tient sur UNE ligne (≈ 120 px, libellé court) ; le titre de la situation garde la place. */
  main.page .n1-tuile .n1-t-geste{display:inline-flex!important;align-items:center;justify-content:center;white-space:nowrap!important;max-width:128px!important;overflow:hidden!important;font-size:13px!important;padding-left:6px!important;padding-right:6px!important;line-height:1.2;box-sizing:border-box}
  main.page .n1-tuile .n1-g-long{display:none}
  main.page .n1-tuile .n1-g-court{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  main.page .n1-tuile{max-height:56px}
}
@media (min-width:768px){
  body{padding-left:72px}
  .n1-colonne{display:flex;flex-direction:column;gap:1px;position:fixed;left:0;top:0;bottom:0;width:72px;z-index:160;background:var(--n1-navy);padding:6px 4px;box-sizing:border-box;overflow-y:auto;scrollbar-width:none}
  .n1-col-marque{display:flex;align-items:center;justify-content:center;gap:8px;height:42px;margin-bottom:4px;text-decoration:none;color:#fff}
  .n1-col-marque .v2-logo{width:30px;height:30px}
  .n1-col-nom{display:none}
  .n1-col-e{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 2px;border-radius:10px;color:#cfe0f5;text-decoration:none;font-size:10.5px;font-weight:600;line-height:1.15}
  .n1-col-e .ux-icone{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;flex:0 0 auto}
  .n1-col-e:hover{color:#fff;background:rgba(255,255,255,.08)}
  .n1-col-e.on{color:#fff;background:rgba(255,255,255,.16)}
  .n1-col-l{display:none}
  /* Barre du haut réduite (la barre à 5 entrées + « Plus » disparaît). */
  header.v2-entete.c1-entete{display:flex;align-items:center;flex-wrap:nowrap;gap:10px;height:52px;min-height:52px;padding:0 16px;box-sizing:border-box}
  header.v2-entete :is(.v2-marque,.v2-garage-actif,.n1-haut){display:none!important}
  .n1-tel-titre{display:block;flex:1 1 auto;min-width:0;font-size:18px;font-weight:700;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  header.v2-entete .ux-barre-recherche{margin-left:0}
  .n1-menu-b{display:inline-grid;place-items:center;order:20;width:40px;height:40px;border:0;border-radius:10px;background:rgba(255,255,255,.12);color:#fff;font-size:20px;line-height:1;cursor:pointer}
  .n1-outils{display:flex;align-items:center;order:19}
  .n1-outils:not(.ouvert)>:not(.ck-bx-barre){display:none!important}
  header.v2-entete .n1-outils:not(.ouvert) .ck-bx-barre .ck-bx-b[data-bx=idees]{display:none!important}
  .n1-voile-tel.ouvert{display:block;position:fixed;inset:0;z-index:199;background:transparent}
  .n1-outils.ouvert{position:fixed;top:56px;right:12px;z-index:200;flex-direction:column;align-items:stretch;gap:6px;min-width:280px;max-height:80vh;overflow:auto;background:#fff;color:var(--n1-ink);border:1px solid var(--n1-line);border-radius:12px;box-shadow:0 12px 32px hsl(216 50% 10%/.22);padding:10px}
  .n1-outils.ouvert :is(button,a,summary){color:var(--n1-ink)!important;background-color:#f2f5f9;min-height:40px;border-radius:10px}
  .n1-outils.ouvert svg{stroke:currentColor;color:var(--n1-ink)}
  .n1-outils.ouvert .ck-bx-barre{display:flex;gap:6px}
  .n1-outils.ouvert .n1-reglages-g{display:flex!important;flex-direction:column;gap:6px;position:static!important}
  .n1-outils.ouvert .n1-reglages-g>*{display:inline-flex!important;position:static!important;opacity:1!important;visibility:visible!important}
  .n1-outils.ouvert .ux-aide-bouton{display:inline-flex;align-items:center;gap:6px;width:auto;padding:0 14px}
  .n1-outils.ouvert .ux-aide-bouton::after{content:"Aide";font-weight:600}
  .n1-outils.ouvert .n1-session-tel{display:flex;flex-direction:column;gap:2px;border-top:1px solid var(--n1-line);padding-top:8px}
  .n1-outils.ouvert .n1-session-e{background:none}
  .n1-outils.ouvert .n1-session-qui{font-size:12px;color:var(--n1-muted)}
  /* La session est dans ≡ ; le titre est dans la barre ; l'entête (onglets et filtres compris) tient en ≤ 15 % de la hauteur. */
  .demo.ux-bandeau,.demo.ux-bandeau:has(.v2-session){display:none!important}
  .n1-ecran .n1-titre{display:none}
  body:has(main.n1-a-onglets) .c1-fil{display:none!important}
  .n1-ecran{padding-top:4px}
  .n1-onglets{margin-bottom:6px}
  .n1-onglets a{padding:8px 10px 7px}
  .n1-filtres{margin-bottom:6px}
  .n1-filtres a{padding:3px 10px}
}
@media (min-width:1281px){
  body{padding-left:200px}
  .n1-colonne{width:200px;padding:8px 10px}
  .n1-col-marque{justify-content:flex-start;padding-left:8px}
  .n1-col-nom{display:inline;font-weight:700;font-size:16px}
  .n1-col-e{flex-direction:row;gap:12px;padding:8px 12px;font-size:14px}
  .n1-col-l{display:inline}
  .n1-col-c{display:none}
}

/* N1b-3 (29/10) : un menu déroulant ouvert vers la gauche (Stock › À animer, ancré à droite) passe AU-DESSUS de la
   colonne de gauche au lieu de glisser dessous (la colonne interceptait les clics). */
@media (min-width:768px){ .st-menu.st-animer{z-index:170} }

/* N1b-4 (29/10) : Stock au téléphone, ⋯ ouvert — le panneau (Sélection, Règle de prix, Affiches) ne flotte plus
   par-dessus les commandes qu'il vient de faire apparaître (il couvrait « Affichage ») : ⋯ prend sa rangée, à
   droite, le panneau s'ouvre dessous dans le flux, les commandes suivent. */
@media (max-width:767px){
  main.n1-a-onglets .st[data-stock] .st-ligne details.st-plus[open]{flex:1 0 100%;order:-3}
  main.n1-a-onglets .st[data-stock] .st-ligne details.st-plus[open]>summary{margin-left:auto}
  main.n1-a-onglets .st[data-stock] .st-ligne details.st-plus[open]>.st-plus-m{position:static;width:auto;margin-top:6px;animation:none}
}
/* N1b-4 : Stock au bureau, densité — plus de trou entre les filtres N1 et la rangée de commandes (8 lignes entières
   à 1 440 × 900, comme avant N1). */
@media (min-width:768px){
  body:has(main.n1-a-onglets .st[data-stock]) .n1-ecran[data-ecran=stock] .n1-filtres{margin-bottom:6px}
  main.n1-a-onglets .st[data-stock]{padding-top:0;margin-top:0}
  main.n1-a-onglets .st[data-stock]>:first-child{margin-top:0}
}

/* ── N1b-5 (29/10, décisions par défaut a/b/c) : au téléphone, onglets et filtres en 15 px ; onglets 40 px visibles,
   filtres 32 px visibles, chacun avec une ZONE DE TOUCHER de 44 px (pseudo-élément) qui ne chevauche jamais sa
   voisine : la zone des onglets monte de 4 px dans le bas de la barre du haut (dont les boutons sont calés en haut,
   0→44 px, et dont le fond laisse passer le toucher), celle des filtres descend de 12 px sous les puces.
   Entête visible 48 + 40 + 32 = 120 px. Une rangée qui défile de côté coupe son dernier onglet visible. ── */
@media (max-width:767px){
  header.v2-entete,header.v2-entete.c1-entete{padding-top:env(safe-area-inset-top,0px)!important;padding-bottom:4px!important;pointer-events:none}
  header.v2-entete>*{pointer-events:auto;align-self:flex-start;max-height:44px}
  header.v2-entete :is(.brand,.v2-marque){max-height:44px;overflow:hidden}
  .n1-onglets{height:44px;margin:-4px -12px 0!important;padding:4px 12px 0!important;gap:2px;box-sizing:border-box;overflow-y:hidden;align-items:flex-end;position:relative}
  .n1-onglets a{flex:0 0 auto;position:relative;font-size:15px;height:40px;min-height:40px!important;padding:0 10px!important;box-sizing:border-box;display:inline-flex;align-items:center;pointer-events:auto}
  .n1-onglets a::after{content:"";position:absolute;left:0;right:0;top:-4px;bottom:0}
  .n1-filtres{flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;margin:0 -12px -12px!important;padding:0 12px 12px;gap:6px;box-sizing:border-box;position:relative}
  .n1-filtres a{flex:0 0 auto;position:relative;font-size:15px;height:32px;min-height:32px!important;padding:0 12px!important;box-sizing:border-box;white-space:nowrap;pointer-events:auto}
  .n1-filtres a::after{content:"";position:absolute;left:-3px;right:-3px;top:0;bottom:-12px}
  /* Cockpit : « En premier » retiré (la première ligne a déjà son liseré) ; libellés courts des gestes en 15 px. */
  main.page .n1-tuile .n1-prem-t{display:none!important}
  .n1-g-court{font-size:15px}
}

/* N1b-5 (29/10, antichambre) : Stock au bureau large (> 1 280 px), les commandes tiennent sur UNE rangée (recherche +
   Étapes / Filtres + Client / Gestion / Diffusion + Liste / Vitrine + 25/50/100 + ⤓ + ⋯, pastilles de comptage gardées) :
   la recherche cède sa largeur, rien ne passe à la ligne. 8 lignes entières à 1 440 × 900. */
@media (min-width:1281px){
  main.n1-a-onglets .st[data-stock] .st-ligne{flex-wrap:nowrap;gap:4px}
  main.n1-a-onglets .st[data-stock] .st-ligne>*{flex-shrink:0}
  main.n1-a-onglets .st[data-stock] .st-ligne .st-cherche{flex:1 1 160px;min-width:110px}
  main.n1-a-onglets .st[data-stock] .st-ligne :is(.st-cp,.st-f){padding:0 7px}
}

/* ── N1b-6 (29/10, plan v1.5 a) : au téléphone, les filtres deviennent une puce « Filtres ▾ » au bout de la rangée des
   onglets (entête 48 + 44 = 92 px). Plus de rangée de filtres ; la puce (40 px visibles, zone de toucher de 44 px qui
   monte de 4 px comme celle des onglets) porte le nom du filtre actif et ouvre une feuille : une ligne de 44 px par
   filtre, l'actif coché ; elle se ferme au choix ou en touchant dehors. Au bureau, rien ne change (puce masquée). ── */
.n1-puce-filtres,.n1-voile-filtres,.n1-feuille-filtres{display:none}
@media (max-width:767px){
  .n1-ecran:has(.n1-puce-filtres){display:flex;align-items:flex-end;gap:4px}
  .n1-ecran:has(.n1-puce-filtres) .n1-onglets{flex:1 1 auto;min-width:0;margin-right:0!important;padding-right:0!important}
  .n1-ecran .n1-filtres{display:none!important}
  .n1-puce-filtres{display:inline-flex;align-items:center;gap:2px;flex:0 1 auto;max-width:46%;position:relative;height:40px;padding:0 12px;margin:0;box-sizing:border-box;
    border:1px solid var(--n1-line);border-radius:20px;background:#fff;color:var(--n1-ink);font:inherit;font-size:15px;font-weight:600;white-space:nowrap;cursor:pointer;pointer-events:auto;overflow:visible}
  .n1-puce-filtres::after{content:"";position:absolute;left:0;right:0;top:-4px;bottom:0}
  .n1-puce-filtres.on{background:var(--n1-navy);color:#fff;border-color:var(--n1-navy)}
  .n1-puce-l{min-width:0;overflow:hidden;text-overflow:ellipsis}
  .n1-voile-filtres{display:block;position:fixed;inset:0;z-index:209;background:hsl(216 50% 10%/.12)}
  .n1-feuille-filtres{display:flex;flex-direction:column;position:fixed;top:calc(96px + env(safe-area-inset-top,0px));right:12px;z-index:210;min-width:220px;max-width:calc(100vw - 24px);
    max-height:60vh;overflow:auto;background:#fff;border:1px solid var(--n1-line);border-radius:12px;box-shadow:0 12px 32px hsl(216 50% 10%/.22);padding:6px}
  .n1-feuille-filtres a{display:flex;align-items:center;gap:8px;min-height:44px;padding:0 12px;box-sizing:border-box;font-size:15px;color:var(--n1-ink);text-decoration:none;border-radius:8px;white-space:nowrap}
  .n1-feuille-filtres a::before{content:"";display:inline-block;width:18px;flex:0 0 18px;font-weight:700;color:var(--n1-blue)}
  .n1-feuille-filtres a.on{font-weight:700;background:#f2f5f9}
  .n1-feuille-filtres a.on::before{content:"✓"}
  .n1-feuille-filtres a[hidden]{display:none!important}
  /* Offres : la recherche, « Tout ▾ » et ⋯ quittent la rangée des filtres N1 pour une rangée de l'écran, sous l'entête,
     cibles de 44 px, sur une ligne. */
  main.n1-a-onglets section.or[data-ecran=mes-offres]>.or-band{position:static!important;top:auto;right:auto;width:auto!important;height:44px!important;margin:4px 0!important;display:flex;flex-wrap:nowrap;gap:6px;align-items:center}
  main.n1-a-onglets section.or[data-ecran=mes-offres]>.or-band>*{height:44px!important;min-height:44px!important;flex:0 0 auto}
  main.n1-a-onglets section.or[data-ecran=mes-offres]>.or-band .or-cherche{flex:1 1 auto!important;min-width:0}
  main.n1-a-onglets section.or[data-ecran=mes-offres]>.or-band :is(input,summary,button,select){height:44px!important;min-height:44px!important;min-width:44px;box-sizing:border-box}
  /* Stock : ⋯ (et la recherche) dans une rangée de l'écran, sous l'entête, cibles de 44 px ; ⋯ ouvert, ses commandes aussi. */
  main.n1-a-onglets .st[data-stock] .st-ligne:not(:has(details.st-plus[open])){position:static!important;top:auto!important;right:auto!important;display:flex;flex-wrap:nowrap;align-items:center;gap:6px;margin:4px 0!important}
  main.n1-a-onglets .st[data-stock] .st-ligne:not(:has(details.st-plus[open]))>.st-cherche{display:flex!important;flex:1 1 auto;min-width:0}
  main.n1-a-onglets .st[data-stock] .st-ligne details.st-plus{margin-left:auto}
  main.n1-a-onglets .st[data-stock] .st-ligne details.st-plus>summary{width:44px!important;height:44px!important;min-height:44px}
  main.n1-a-onglets .st[data-stock] .st-ligne :is(input,select,button,summary,.st-cp,.st-f){min-height:44px;box-sizing:border-box}
}
/* N1b-6 : Demandes au téléphone — la réserve de 76 px sous la page (pour la barre du bas, `main.page` plus haut) ne vaut
   pas pour l'application des Demandes, qui se cale elle-même au-dessus de la barre (--dm-bas) : sans cela la page
   glissait de 18 px (liste) et, conversation ouverte (barre masquée), laissait 76 px de vide sous la barre de réponse. */
@media (max-width:767px){ body main.page:has(.dm){padding-bottom:0!important} }

/* ── N1b-7 (29/10, mesure F10 du chef, 22 h) : au téléphone, la PREMIÈRE voiture / offre commence à ≤ 125 px. La rangée
   propre de l'écran (Stock : recherche + ⋯ ; Offres : recherche + ⋯) remonte dans la rangée des onglets (onglets ·
   Filtres ▾ · loupe · ⋯, cibles 44 px, zones sans chevauchement) : marge négative de 44 px, posée à droite, la rangée
   N1 lui laisse sa place. La loupe ouvre la recherche de la liste (le champ prend la largeur de la rangée, ✕ pour
   revenir). Offres : « Tout ▾ » (filtres et tri) passe en tête du menu ⋯ (`.or-dd-tel`). ── */
.or-dd-tel,.or-eff{display:none}
@media (max-width:767px){
  body:has(main.n1-a-onglets :is(.st[data-stock] .st-ligne,section.or[data-ecran=mes-offres]>.or-band)) .n1-ecran{padding-right:112px!important;box-sizing:border-box}
  body:has(main.n1-a-onglets :is(.st[data-stock] .st-ligne,section.or[data-ecran=mes-offres]>.or-band)) .n1-ecran .n1-onglets{flex:1 1 0!important;min-width:0!important}
  body:has(main.n1-a-onglets :is(.st[data-stock] .st-ligne,section.or[data-ecran=mes-offres]>.or-band)) .n1-ecran .n1-puce-filtres{flex:0 0 auto}
  main.n1-a-onglets .st[data-stock] .st-ligne:not(:has(details.st-plus[open])),
  main.n1-a-onglets section.or[data-ecran=mes-offres]>.or-band{margin:-44px 0 0 auto!important;width:max-content!important;max-width:100%;height:44px!important;min-height:44px!important;padding:0!important;
    position:relative!important;z-index:6;display:flex!important;flex-wrap:nowrap!important;align-items:center;gap:4px!important;background:transparent;border:0!important;box-shadow:none!important}
  main.n1-a-onglets section.or[data-ecran=mes-offres]>.or-band>:not(.or-cherche,.or-eff,.com-plus){display:none!important}
  main.n1-a-onglets section.or[data-ecran=mes-offres]>.or-band>.or-eff{display:none}
  /* La page remonte sous la rangée N1 (marge négative) : elle laisse passer le toucher, seuls ses blocs le prennent
     (sans cela les onglets et la puce « Filtres ▾ » ne recevaient plus le doigt). */
  main.n1-a-onglets:has(>.st[data-stock] .st-ligne,>section.or[data-ecran=mes-offres]){pointer-events:none}
  main.n1-a-onglets .st[data-stock],main.n1-a-onglets section.or[data-ecran=mes-offres]{pointer-events:none}
  main.n1-a-onglets .st[data-stock]>*:not(.or-toasts),main.n1-a-onglets section.or[data-ecran=mes-offres]>*:not(.or-toasts){pointer-events:auto}
  main.n1-a-onglets .st[data-stock]{padding-top:0!important;margin-top:0!important}
  main.n1-a-onglets section.or[data-ecran=mes-offres]{padding-top:0!important;margin-top:0!important}
  /* La loupe (repliée) : 44 × 44, le champ invisible la couvre (un toucher l'ouvre). */
  main.n1-a-onglets :is(.st[data-stock] .st-ligne>.st-cherche,section.or[data-ecran=mes-offres]>.or-band>.or-cherche){flex:0 0 44px!important;width:44px!important;min-width:44px!important;height:44px!important;
    position:relative;display:flex!important;align-items:center;justify-content:center;padding:0!important;margin:0!important;border:1px solid var(--n1-line);border-radius:22px;background:#fff;box-sizing:border-box;overflow:hidden}
  main.n1-a-onglets :is(.st[data-stock] .st-ligne>.st-cherche,section.or[data-ecran=mes-offres]>.or-band>.or-cherche) input{position:absolute;inset:0;width:100%!important;height:100%!important;min-height:0!important;opacity:0;padding:0 0 0 38px!important;margin:0;border:0!important;background:transparent;font-size:16px}
  main.n1-a-onglets .st[data-stock] .st-ligne>.st-cherche :is(.st-eff,.st-res){display:none!important}
  /* Ouverte (champ actif ou recherche en cours) : toute la largeur de la rangée, par-dessus les onglets, avec ✕. */
  main.n1-a-onglets .st[data-stock] .st-ligne:not(:has(details.st-plus[open])):has(.st-cherche:focus-within,.st-cherche.plein),
  main.n1-a-onglets section.or[data-ecran=mes-offres]>.or-band:has(.or-cherche:focus-within,.or-cherche input:not(:placeholder-shown)){width:auto!important;margin-left:0!important;background:var(--n1-fond,#f6f7f9)}
  main.n1-a-onglets .st[data-stock] .st-ligne:has(.st-cherche:focus-within,.st-cherche.plein)>.st-cherche,
  main.n1-a-onglets section.or[data-ecran=mes-offres]>.or-band:has(.or-cherche:focus-within,.or-cherche input:not(:placeholder-shown))>.or-cherche{flex:1 1 auto!important;width:auto!important;justify-content:flex-start;padding-left:12px!important}
  main.n1-a-onglets .st[data-stock] .st-ligne:has(.st-cherche:focus-within,.st-cherche.plein)>.st-cherche input,
  main.n1-a-onglets section.or[data-ecran=mes-offres]>.or-band:has(.or-cherche:focus-within,.or-cherche input:not(:placeholder-shown))>.or-cherche input{opacity:1;padding-right:48px!important}
  main.n1-a-onglets .st[data-stock] .st-ligne:has(.st-cherche:focus-within,.st-cherche.plein)>.st-cherche .st-eff{display:flex!important;position:absolute;right:0;top:0;width:44px;height:42px;align-items:center;justify-content:center;z-index:1}
  main.n1-a-onglets section.or[data-ecran=mes-offres]>.or-band:has(.or-cherche:focus-within,.or-cherche input:not(:placeholder-shown))>.or-eff{display:flex!important;flex:0 0 44px;width:44px;height:44px;align-items:center;justify-content:center;border:1px solid var(--n1-line);border-radius:22px;background:#fff;font-size:17px}
  main.n1-a-onglets section.or[data-ecran=mes-offres]>.or-band>.com-plus>summary{width:44px;height:44px;display:flex;align-items:center;justify-content:center;box-sizing:border-box}
  /* « Tout ▾ » des Offres : en tête du menu ⋯. */
  .or-dd-tel{display:flex;flex-direction:column;gap:2px;padding-bottom:6px;margin-bottom:6px;border-bottom:1px solid var(--n1-line)}
  .or-dd-tel small{font-size:15px;color:var(--n1-muted,#667);padding:6px 4px 2px}
  .or-dd-tel .or-f{min-height:44px;justify-content:flex-start;font-size:15px}
  /* Cockpit gérant : « Octobre · Ventes 4 Objectif à fixer » sur sa propre ligne, le reste du mois dessous (s'il y en a). */
  .aj-bandeau:has(.aj-ecart-neutre),.aj-bandeau[data-compteurs]:has(.aj-ecart-neutre){flex-wrap:wrap;max-height:none!important;row-gap:4px}
  .aj-bandeau .aj-k:has(.aj-ecart-neutre){flex:1 0 100%}
  .aj-bandeau .aj-k:has(.aj-ecart-neutre)+.aj-k{border-left:0;padding-left:0}
}
/* N1b-7 (s1 C2) : Stock au bureau, les pastilles de comptage tiennent sur UNE rangée qui défile de côté (toutes gardées). */
@media (min-width:768px){
  main.n1-a-onglets .st[data-stock] .st-bandeau{flex-wrap:nowrap!important;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}
  main.n1-a-onglets .st[data-stock] .st-bandeau :is(.st-cpts,.st-acces){flex-wrap:nowrap!important}
  main.n1-a-onglets .st[data-stock] .st-bandeau>*,main.n1-a-onglets .st[data-stock] .st-bandeau .st-cpts>*{flex-shrink:0}
}
/* N1b-7 (ben3) : la colonne de gauche dépliée (200 px, > 1 280 px) prend la place qui manquait à la table des factures :
   les gestes de chaque ligne passent à la ligne jusqu'à 1 679 px (avant : 1 439 px), plus de défilement de côté à 1 440. */
@media (min-width:1281px) and (max-width:1679px){ .fa-actions{white-space:normal}.fa-actions>*{white-space:normal;max-width:120px;height:auto;min-height:26px;line-height:1.2;padding-top:3px;padding-bottom:3px;vertical-align:middle} }
/* N1b-7 : portée Moi / Garage des Offres dans le menu ⋯ au téléphone ; entrée de module masqué cachée partout. */
.n1-col-e[hidden],.n1-feuille-e[hidden]{display:none!important}
@media (max-width:767px){ .or-dd-tel .or-seg{display:flex;gap:4px;margin:0 0 4px}.or-dd-tel .or-seg button{flex:1 1 0;min-height:44px;font-size:15px} }

/* G1 (30/10) — barre du bas = celle de la V1 (MobileBottomNav.tsx) : fond bleu marine de la colonne
   (--sidebar-background 216 54% 13%), texte 214 32% 87% à 65 %, actif blanc + icône et trait
   213 95% 62 %, icônes lucide 22 px ; mesuré sur la V1 rendue (30/10) : bouton 51 px (6 + 22 + 4 + 13 + 6),
   barre 52 px avec son filet, police système de la V1 (-apple-system, SF Pro Text), pastille rouge des leads à répondre. */
:root{--g1-fond:hsl(216 54% 13%);--g1-texte:hsl(214 32% 87% / .65);--g1-actif:hsl(213 95% 62%);--g1-bord:hsl(222 28% 17%);--g1-rouge:hsl(0 84% 50%)}
@media (max-width:767px){
  .ux-barre-bas.n1-bas.g1-bas{display:flex;align-items:stretch;background:var(--g1-fond);border-top:1px solid var(--g1-bord);padding:0 0 env(safe-area-inset-bottom);min-height:0;gap:0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
  .ux-barre-bas.n1-bas.g1-bas a{position:relative;flex:1 1 0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:0;padding:6px 0;color:var(--g1-texte);background:none;font-family:-apple-system,"system-ui","SF Pro Text",system-ui,sans-serif;font-weight:400;text-decoration:none;min-width:0;-webkit-tap-highlight-color:transparent}
  .ux-barre-bas.n1-bas.g1-bas a[hidden]{display:none!important}
  .ux-barre-bas.n1-bas.g1-bas a:active{color:#fff}
  .ux-barre-bas.n1-bas.g1-bas a.active{color:#fff;background:none;font-weight:600}
  .ux-barre-bas.n1-bas.g1-bas a .g1-icone{width:22px;height:22px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round}
  .ux-barre-bas.n1-bas.g1-bas a.active .g1-icone{stroke:var(--g1-actif);stroke-width:2.3}
  .ux-barre-bas.n1-bas.g1-bas a span{max-width:none;overflow:visible;font-size:inherit}
  .ux-barre-bas.n1-bas.g1-bas .g1-trait{display:none}
  .ux-barre-bas.n1-bas.g1-bas a.active .g1-trait{display:block;position:absolute;top:0;left:50%;transform:translateX(-50%);width:32px;height:3px;border-radius:0 0 9999px 9999px;background:var(--g1-actif)}
  .ux-barre-bas.n1-bas.g1-bas .g1-ic{position:relative;display:block;line-height:0}
  .ux-barre-bas.n1-bas.g1-bas .g1-l{display:block;max-width:100%;font-size:13px;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .ux-barre-bas.n1-bas.g1-bas .g1-pastille{position:absolute;top:-6px;right:-8px;min-width:16px;height:16px;padding:0 4px;box-sizing:border-box;border-radius:9999px;background:var(--g1-rouge);color:#fff;font-size:13px;font-weight:600;line-height:16px;text-align:center;font-variant-numeric:tabular-nums;box-shadow:0 0 0 2px var(--g1-fond),0 1px 2px rgba(0,0,0,.3);overflow:visible}
}

/* Fiche R10 (30/10) : au téléphone la bulle de la boîte à idées ne couvre plus le début des pastilles et des cartes —
   en bas à droite, juste au-dessus de la barre, plus petite. */
@media (max-width:767px){
  body:has(.n1-bas) .bl-bouton{left:auto!important;right:6px!important;bottom:calc(56px + env(safe-area-inset-bottom))!important;width:44px!important;height:44px!important;background:radial-gradient(circle,var(--bl-violet) 0 12px,transparent 12.5px)!important;opacity:.9}
}
