/* ===========================================================================
   LANCEUR D'APPLICATIONS (/apps) — passation « Lanceur d'applications EasyERP ».

   L'écran d'accueil du back-office : les vingt modules du catalogue groupés par
   domaine, avec recherche, onglets, favoris, récents et les quatre états d'accès.

   UNE FEUILLE POUR CET ÉCRAN, ET NON LA QUEUE DE modele-erp.css. C'est la règle du
   dépôt (CLAUDE.md, « un écran, une feuille ») et sa raison tient en une ligne :
   la queue du gabarit est l'endroit où toutes les branches ouvertes le même jour
   se télescopent, sur la dernière ligne du fichier et sur la clé de cache
   partagée, jamais sur le fond.

   AUCUNE COULEUR EN DUR — la passation en donne une quarantaine, toutes reprises
   ici en jetons --et-* de la charte. Mêmes valeurs (la passation est dessinée sur
   la charte « Design 7 » : marine #1B2A5E pour la coquille, bleu SAP #0A6ED1 pour
   l'interactif, orange #F26C16 pour le seul bouton d'engagement), mais qui
   suivent la bascule de thème sombre au lieu de rester en blanc sur blanc.

   LES QUATRE COULEURS D'ÉTAT ET LES QUATRE COULEURS DE GROUPE SONT DÉCLARÉES ICI,
   en jetons locaux --lnc-*, et c'est le seul endroit où elles existent : la carte,
   la légende, le filet gauche et le libellé d'action doivent dire la MÊME chose
   d'un module, faute de quoi une carte grise porterait une action bleue. Les
   énoncer une fois est ce qui le garantit.

   Préfixe .lnc-* — un seul écran les emploie, aucune ne monte au gabarit.
   =========================================================================== */

/* --------------------------------------------------------------- 1. jetons */

.lnc {
    /* Les quatre états d'accès, dans l'ordre de priorité de la passation.
       « souscrit » emprunte l'ambre de la charte : le module est à vendre, pas en
       panne — le rouge dirait une erreur là où il n'y a qu'une offre. */
    --lnc-inerte: var(--et-inerte);
    --lnc-accessible: var(--et-ok);
    --lnc-souscrit-filet: #E2B276;
    --lnc-souscrit-ink: var(--et-avertissement-ink);
    --lnc-souscrit-bg: var(--et-avertissement-bg);
    --lnc-refuse: var(--et-danger);
    --lnc-refuse-ink: #A20000;
    --lnc-refuse-bg: var(--et-danger-badge-bg);
    --lnc-bientot-bg: var(--et-neutre-bg);
    --lnc-bientot-ink: var(--et-muted);

    /* Les quatre groupes : filet gauche de carte, fond et encre de la pastille
       d'icône. Marine, vert, ambre, ardoise — les quatre familles de la charte. */
    --lnc-g0: var(--et-blue);
    --lnc-g0-bg: #E8EDF7;
    --lnc-g0-ink: var(--et-blue);
    --lnc-g1: var(--et-ok);
    --lnc-g1-bg: #E6F2EA;
    --lnc-g1-ink: #0B5C2C;
    --lnc-g2: #C77400;
    --lnc-g2-bg: var(--et-avertissement-bg);
    --lnc-g2-ink: var(--et-avertissement-ink);
    --lnc-g3: var(--et-table-head);
    --lnc-g3-bg: #EAEDF0;
    --lnc-g3-ink: var(--et-table-head);

    min-height: 100vh;
    background: var(--et-surface-2);
    color: var(--et-ink);
    font-family: var(--et-font);
}

/* Thème sombre. L'attribut est posé par le lanceur lui-même (data-theme sur .lnc)
   et non par .appgrid : cet écran n'a pas de coquille de module, il EST sa propre
   coquille. La clé de persistance reste « easytime.theme », partagée avec
   ShellModule — le lanceur s'ouvre dans le thème du module dont on sort, et son
   bouton de bascule écrit dans la même clé, donc le choix survit au passage.

   Les jetons de contenu --et-* ne basculent que sous .appgrid[data-theme="dark"]
   (easytech-theme.css) : hors coquille, ils resteraient au thème clair. Ce bloc
   les redéclare donc pour cet écran, avec les valeurs de la passation — qui sont
   celles du thème sombre du dépôt. */
.lnc[data-theme="dark"] {
    --et-ink: #e5edf5;
    --et-muted: #8a97ac;
    --et-faint: #8a97ac;
    --et-inerte: #5b6a80;
    --et-surface: #111A2B;
    --et-surface-2: #16202F;
    --et-surface-3: #1B2739;
    --et-hairline: #26324a;
    --et-filet-fort: #26324a;
    --et-tint: #1D2A45;
    --et-navy-soft: #1D2A45;
    --et-navy-ink: #8FB4F0;
    --et-lien: #8FB4F0;
    --et-table-head: #C3D0E4;
    --et-neutre-bg: rgba(148, 163, 184, .16);
    --et-avertissement-bg: rgba(244, 154, 71, .16);
    --et-avertissement-ink: #f0a860;
    --et-danger-badge-bg: rgba(248, 113, 113, .16);

    --lnc-g0: #8FB4F0;
    --lnc-g0-bg: #1D2A45;
    --lnc-g0-ink: #8FB4F0;
    --lnc-g1-bg: rgba(16, 126, 62, .22);
    --lnc-g1-ink: #6ee7a0;
    --lnc-g2-ink: #f0a860;
    --lnc-g3: #C3D0E4;
    --lnc-g3-bg: rgba(148, 163, 184, .16);
    --lnc-g3-ink: #C3D0E4;
    --lnc-refuse-ink: #f87171;
    --lnc-souscrit-ink: #f0a860;
}

/* ------------------------------------------------- 2. barre du haut (marine) */

/* Elle ne bascule PAS en thème sombre au-delà de son fond : elle porte du texte
   blanc dans les deux thèmes, comme toutes les barres de marque du dépôt. */
.lnc-barre {
    height: calc(56px + var(--et-safe-haut));
    padding-top: var(--et-safe-haut);
    padding-left: max(28px, var(--et-safe-gauche));
    padding-right: max(28px, var(--et-safe-droite));
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: nowrap;
    background: var(--et-blue);
    color: var(--et-sur-marine);
}
.lnc[data-theme="dark"] .lnc-barre { background: #0C1524; border-bottom: 1px solid var(--et-hairline); }

.lnc-espaceur { flex: 1; }

.lnc-marque {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 18px;
    font-weight: 700;
    color: var(--et-sur-marine);
    text-decoration: none;
    white-space: nowrap;
}
.lnc-marque:hover { color: var(--et-sur-marine); text-decoration: none; }
.lnc-marque > i { color: var(--et-orange); font-size: 16px; }
.lnc-marque .suffixe { color: var(--et-orange); margin-left: -8px; }

/* Société et période : deux pastilles de même gabarit, l'une cliquable, l'autre
   non. Le fond translucide est celui du rail (rail-lateral.css) — sur le marine,
   une couleur pleine ferait une deuxième barre. */
.lnc-pastille {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 5px 10px;
    border: 0;
    background: var(--et-fond-marine-doux);
    color: var(--et-sur-marine);
    font: inherit;
    font-size: 13px;
    white-space: nowrap;
}
button.lnc-pastille { cursor: pointer; }
button.lnc-pastille:hover { background: var(--et-fond-marine-survol); }

.lnc-ouverte {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 1px 7px;
    border-radius: var(--et-r-pill);
    background: var(--et-sur-aplat);
    color: var(--et-ok);
    font-size: 12px;
    font-weight: 600;
}
.lnc-ouverte .point { width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
/* Un exercice clos garde la pastille, change le mot et la couleur : l'absence
   d'information et « c'est fermé » ne se disent pas de la même façon. */
.lnc-ouverte.est-close { color: var(--et-muted); }

/* La cloche et le bloc utilisateur viennent de composants partagés
   (PanneauNotifications, AppTopbarActions) : on ne redéclare ici que ce que la
   passation impose et qui diffère — l'avatar carré de 26 px. Le reste (menu,
   déconnexion, contexte super-admin) est celui de tout le back-office, et le
   recopier aurait donné un second menu utilisateur à maintenir. */
.lnc-barre .et-user { padding-left: 12px; border-left: 1px solid var(--et-filet-marine); }
.lnc-barre .et-user .av {
    width: 26px;
    height: 26px;
    border-radius: 0;
    background: var(--et-fond-marine);
    font-family: var(--et-font-mono);
    font-size: 12px;
    font-weight: 600;
}

/* ---------------------------------------------------- 3. en-tête de la page */

.lnc-entete {
    background: var(--et-surface);
    border-bottom: 1px solid var(--et-hairline);
    padding: 20px max(28px, var(--et-safe-droite)) 0 max(28px, var(--et-safe-gauche));
}
.lnc-entete-haut {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    flex-wrap: wrap;
}
.lnc-texte { max-width: 78ch; }

.lnc-surtitre {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 7px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--et-table-head-encre);
}
.lnc-surtitre .trait { width: 14px; height: 2px; background: var(--et-orange); }

.lnc-entete h1 { margin: 0; font-size: 22px; font-weight: 700; letter-spacing: -.01em; }

/* L'accroche est en italique : c'est une PROMESSE, pas une consigne. Elle porte
   ce que la suite sait faire ; le résumé juste dessous porte les chiffres. */
.lnc-accroche { margin: 7px 0 0; font-size: 14px; line-height: 1.55; font-style: italic; text-wrap: pretty; }
.lnc-resume { margin: 5px 0 0; font-size: 13px; color: var(--et-muted); }

.lnc-actions { display: flex; align-items: center; gap: 10px; }

.lnc-recherche { position: relative; width: 300px; }
.lnc-recherche > i {
    position: absolute;
    left: 9px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 13px;
    color: var(--et-faint);
    pointer-events: none;
}
.lnc-recherche input {
    width: 100%;
    height: 34px;
    padding: 0 8px 0 30px;
    font: inherit;
    font-size: 13px;
    color: var(--et-ink);
    background: var(--et-surface);
    border: 1px solid var(--et-filet-fort);
    border-radius: var(--et-r-btn);
}
.lnc-recherche input:focus-visible { outline: 2px solid var(--et-form-blue); outline-offset: 1px; }

.lnc-btn {
    height: 34px;
    padding: 0 14px;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    background: var(--et-surface);
    border: 1px solid var(--et-filet-fort);
    border-radius: var(--et-r-btn);
    font-size: 13px;
    font-weight: 600;
    color: var(--et-ink);
    text-decoration: none;
    white-space: nowrap;
}
.lnc-btn:hover { border-color: var(--et-form-blue); color: var(--et-form-blue-encre); text-decoration: none; }

/* LE SEUL BOUTON ORANGE DE L'ÉCRAN — la charte n'en autorise qu'un par page, et
   c'est celui-ci : reprendre le travail interrompu. Angles droits, comme tout le
   reste ; ni le champ ni les pastilles ne le concurrencent. */
.lnc-cta {
    height: 34px;
    padding: 0 16px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--et-action);
    color: var(--et-sur-aplat);
    border: 0;
    font-size: 13px;
    font-weight: 600;
    text-decoration: none;
    white-space: nowrap;
}
.lnc-cta:hover { background: var(--et-action-d); color: var(--et-sur-aplat); text-decoration: none; }
.lnc-cta i { font-size: 17px; }

.lnc-entete-bas {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    flex-wrap: wrap;
    margin-top: 18px;
}
.lnc-onglets { display: flex; gap: 22px; }
.lnc-onglet {
    padding: 0 0 10px;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    border: 0;
    background: none;
    font: inherit;
    font-size: 13px;
    font-weight: 400;
    color: var(--et-muted);
    text-decoration: none;
    border-bottom: 3px solid transparent;
    white-space: nowrap;
    cursor: pointer;
}
.lnc-onglet:hover { color: var(--et-form-blue-encre); }
.lnc-onglet.est-actif { font-weight: 700; color: var(--et-form-blue-encre); border-bottom-color: var(--et-form-blue); }
.lnc-cpt { font-family: var(--et-font-mono); font-size: 12px; color: var(--et-faint); }

.lnc-legende {
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
    padding-bottom: 10px;
    font-size: 12px;
    color: var(--et-muted);
}
.lnc-legende span { display: inline-flex; align-items: center; gap: 6px; }
.lnc-carre { width: 8px; height: 8px; display: block; }
.lnc-carre.est-accessible { background: var(--lnc-accessible); }
.lnc-carre.est-non-souscrit { background: var(--lnc-souscrit-filet); }
.lnc-carre.est-restreint { background: var(--lnc-refuse); }
.lnc-carre.est-bientot { background: var(--lnc-inerte); }

/* ----------------------------------------- 4. corps : panneau + grilles */

.lnc-corps {
    display: grid;
    grid-template-columns: 288px minmax(0, 1fr);
    align-items: start;
    gap: 22px;
    padding: 22px max(28px, var(--et-safe-droite)) 56px max(28px, var(--et-safe-gauche));
}

.lnc-panneau {
    position: sticky;
    top: 16px;
    max-height: calc(100vh - 38px);
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 20px;
    background: var(--et-surface);
    border: 1px solid var(--et-hairline);
    padding: 14px 12px 12px;
}
.lnc-panneau-titre {
    display: flex;
    align-items: center;
    gap: 8px;
    padding-bottom: 8px;
    margin-bottom: 6px;
    border-bottom: 1px solid var(--et-hairline);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--et-table-head-encre);
}
.lnc-panneau-titre i { font-size: 12px; color: var(--et-muted); }

.lnc-ligne {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 7px 10px 7px 12px;
    border: 0;
    border-left: 3px solid transparent;
    background: none;
    text-align: left;
    text-decoration: none;
    color: var(--et-ink);
    cursor: pointer;
}
.lnc-ligne:hover {
    background: var(--et-surface-3);
    border-left-color: var(--et-form-blue);
    color: var(--et-ink);
    text-decoration: none;
}
.lnc-ligne .bloc { display: flex; flex-direction: column; min-width: 0; }
.lnc-ligne .nom { font-size: 13px; font-weight: 600; }
.lnc-ligne .meta {
    font-size: 12px;
    color: var(--et-faint);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.lnc-ligne .etoile {
    margin-left: auto;
    padding: 2px;
    border: 0;
    background: none;
    line-height: 1;
    font-size: 13px;
    color: var(--et-navy-ink);
    cursor: pointer;
}
.lnc-ligne .quand { margin-left: auto; flex: none; font-size: 12px; color: var(--et-faint); }

/* La zone cliquable d'une ligne de favori : la pastille et le nom, pas l'étoile qui la
   termine. Elle prend toute la place restante pour que la cible soit la ligne à l'oeil,
   sans être la ligne dans le DOM — un bouton dans un lien coûte le clavier. */
.lnc-cible { display: flex; align-items: center; gap: 10px; flex: 1; min-width: 0; }

/* Le nom d'un favori est un lien, mais la LIGNE porte déjà le survol : il ne se souligne
   pas et ne change pas de couleur, sinon deux affordances se disputeraient la même ligne. */
.lnc-nu { color: inherit; text-decoration: none; }
.lnc-nu:hover { color: inherit; text-decoration: none; }

/* Panneau du premier jour : ni favori ni récent. Aligné sur le retrait des lignes pour que
   le texte ne parte pas au ras du filet du panneau. */
.lnc-panneau-vide { padding: 2px 12px; }

.lnc-pastille-mini {
    width: 26px;
    height: 26px;
    flex: none;
    display: grid;
    place-items: center;
    background: var(--et-navy-soft);
    color: var(--et-navy-ink);
}
.lnc-pastille-mini i { font-size: 16px; }

.lnc-colonne { display: flex; flex-direction: column; gap: 26px; min-width: 0; }

.lnc-groupe-titre {
    display: flex;
    align-items: center;
    gap: 12px;
    padding-bottom: 8px;
    margin-bottom: 12px;
    border-bottom: 1px solid var(--et-hairline);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--et-table-head-encre);
}
.lnc-grille { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 12px; }
.lnc[data-densite="compacte"] .lnc-grille { grid-template-columns: repeat(auto-fill, minmax(258px, 1fr)); }

/* ------------------------------------------------------ 5. carte de module */

/* Le filet gauche de 3 px est le PORTEUR D'ÉTAT de la carte : couleur du groupe
   quand le module s'ouvre, ambre quand il se vend, gris quand il est fermé. Il
   tient ce rôle seul — pas d'ombre, pas de fond teinté au repos —, ce qui laisse
   le survol libre de tout repeindre en bleu sans ambiguïté. */
.lnc-carte {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 14px 16px;
    background: var(--et-surface);
    border: 1px solid var(--et-hairline);
    border-left: 3px solid var(--lnc-filet, var(--lnc-inerte));
    color: var(--et-ink);
    text-decoration: none;
}
a.lnc-carte:hover, .lnc-carte.est-accessible:hover {
    border-color: var(--et-form-blue);
    border-left-color: var(--et-form-blue);
    background: var(--et-tint);
    color: var(--et-ink);
    text-decoration: none;
}
.lnc-carte:focus-visible { outline: 2px solid var(--et-form-blue); outline-offset: 2px; }

/* Les trois états fermés : atténués, pastille neutre, non cliquables. La route
   reste écrite — savoir où mène un module qu'on n'a pas est une information. */
.lnc-carte.est-non-souscrit,
.lnc-carte.est-restreint,
.lnc-carte.est-bientot { opacity: .72; }
.lnc-carte.est-non-souscrit { --lnc-filet: var(--lnc-souscrit-filet); }
.lnc-carte.est-restreint,
.lnc-carte.est-bientot { --lnc-filet: var(--lnc-inerte); }

.lnc-groupe-0 .lnc-carte.est-accessible { --lnc-filet: var(--lnc-g0); }
.lnc-groupe-1 .lnc-carte.est-accessible { --lnc-filet: var(--lnc-g1); }
.lnc-groupe-2 .lnc-carte.est-accessible { --lnc-filet: var(--lnc-g2); }
.lnc-groupe-3 .lnc-carte.est-accessible { --lnc-filet: var(--lnc-g3); }

.lnc-groupe-0 .lnc-carte.est-accessible .lnc-icone { background: var(--lnc-g0-bg); color: var(--lnc-g0-ink); }
.lnc-groupe-1 .lnc-carte.est-accessible .lnc-icone { background: var(--lnc-g1-bg); color: var(--lnc-g1-ink); }
.lnc-groupe-2 .lnc-carte.est-accessible .lnc-icone { background: var(--lnc-g2-bg); color: var(--lnc-g2-ink); }
.lnc-groupe-3 .lnc-carte.est-accessible .lnc-icone { background: var(--lnc-g3-bg); color: var(--lnc-g3-ink); }

.lnc-carte-haut { display: flex; align-items: flex-start; gap: 12px; flex: 1; }
.lnc-icone {
    width: 40px;
    height: 40px;
    flex: none;
    display: grid;
    place-items: center;
    background: var(--et-neutre-bg);
    color: var(--et-faint);
}
.lnc-icone i { font-size: 22px; }
.lnc-carte-texte { min-width: 0; flex: 1; }
.lnc-carte-titre { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.lnc-carte-titre .nom { font-size: 14px; font-weight: 600; }
.lnc-code {
    padding: 1px 6px;
    background: var(--et-navy-soft);
    color: var(--et-navy-ink);
    font-family: var(--et-font-mono);
    font-size: 12px;
    font-weight: 500;
}
.lnc-badge { padding: 2px 9px; border-radius: var(--et-r-pill); font-size: 12px; font-weight: 600; }
.est-non-souscrit .lnc-badge { background: var(--lnc-souscrit-bg); color: var(--lnc-souscrit-ink); }
.est-restreint .lnc-badge { background: var(--lnc-refuse-bg); color: var(--lnc-refuse-ink); }
.est-bientot .lnc-badge { background: var(--lnc-bientot-bg); color: var(--lnc-bientot-ink); }

.lnc-attente {
    min-width: 17px;
    padding: 1px 6px;
    border-radius: var(--et-r-pill);
    background: var(--et-danger);
    color: var(--et-sur-aplat);
    font-family: var(--et-font-mono);
    font-size: 12px;
    text-align: center;
}

/* Deux lignes, pas trois : la description sert à distinguer deux modules voisins,
   pas à les décrire. Le texte entier reste en infobulle. */
.lnc-desc {
    margin-top: 5px;
    font-size: 13px;
    line-height: 1.3;
    color: var(--et-muted);
    text-wrap: pretty;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    overflow: hidden;
    min-height: 2.6em;
}

.lnc-carte .etoile {
    flex: none;
    padding: 2px;
    border: 0;
    background: none;
    line-height: 1;
    font-size: 14px;
    color: var(--et-inerte);
    cursor: pointer;
}
.lnc-carte .etoile:hover, .lnc-carte .etoile.est-favori { color: var(--et-form-blue-encre); }

.lnc-carte-pied {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: auto;
    padding-top: 9px;
    border-top: 1px solid var(--et-hairline);
}
.lnc-route {
    font-family: var(--et-font-mono);
    font-size: 12px;
    color: var(--et-faint);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.lnc-action {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    font-weight: 600;
    white-space: nowrap;
    color: var(--et-form-blue-encre);
    text-decoration: none;
}
.lnc-action i { font-size: 12px; }
.est-non-souscrit .lnc-action { color: #C77400; }
.est-restreint .lnc-action { color: var(--et-danger-ink); }
.est-bientot .lnc-action { color: var(--et-faint); }

/* ------------------------------------------------------- 6. vide et pieds */

.lnc-vide {
    padding: 44px;
    text-align: center;
    background: var(--et-surface);
    border: 1px solid var(--et-hairline);
}
.lnc-vide .titre { font-size: 15px; font-weight: 600; }
.lnc-vide .sous { margin-top: 6px; font-size: 13px; color: var(--et-muted); }

.lnc-note { margin: 0; max-width: 92ch; font-size: 12px; color: var(--et-faint); text-wrap: pretty; }
.lnc-note strong { font-weight: 600; }
.lnc-notes { display: flex; flex-direction: column; gap: 8px; }

/* ------------------------------------------------------------ 7. paliers */

/* Mêmes seuils et MÊME ORDRE DE SACRIFICE que la passation : ce qui disparaît en
   premier est ce dont on peut le mieux se passer. La barre perd ses libellés
   avant ses icônes, le bouton orange perd le nom du module avant son verbe, le
   panneau passe au-dessus de la grille avant qu'on ne rogne les cartes.

   Le palier 1024 px applique la règle tactile du dépôt (docs/cibles-tactiles.md) :
   sous cette largeur, aucune cible interactive ne descend sous 44 px. Les seuils
   641/720/1024/1100 sont ceux de l'échelle retenue (docs/conventions-responsive.md) ;
   1240 et 1360 sont propres à cette barre, qui n'existe qu'ici. */

@media (max-width: 1360px) {
    /* .et-societe-lbl est le libellé du sélecteur de société partagé : la barre du lanceur
       rend l'un OU l'autre selon que le compte a plusieurs sociétés, et les deux doivent
       céder la place au même seuil — sinon la barre se replie pour un compte et déborde
       pour l'autre, à la même largeur d'écran. */
    .lnc-lbl-societe, .lnc-lbl-periode, .lnc-barre .et-societe-lbl { display: none; }
}
@media (max-width: 1240px) {
    .lnc-lbl-cta { display: none; }
}
@media (max-width: 1100px) {
    .lnc-barre .et-user .n1, .lnc-barre .et-user .n2 { display: none; }
    .lnc-corps { grid-template-columns: minmax(0, 1fr); }
    .lnc-panneau { position: static; max-height: none; overflow: visible; order: -1; }
}
@media (max-width: 1024px) {
    .lnc-carte .etoile, .lnc-ligne .etoile { min-width: 44px; min-height: 44px; }
    .lnc-onglet { min-height: 44px; padding-bottom: 14px; }
    .lnc-ligne { min-height: 44px; }
    .lnc-actions { width: 100%; flex-wrap: wrap; }
    .lnc-recherche { width: 100%; min-width: 220px; flex: 1 1 220px; }
    .lnc-recherche input, .lnc-btn, .lnc-cta { height: 44px; }
    .lnc-pastille { min-height: 44px; }
    /* La règle tactile du dépôt (lot02) ne porte que sous .appgrid — la barre du lanceur
       n'en est pas une. Les trois contrôles empruntés au back-office (cloche, sélecteur de
       société, bloc utilisateur) la reçoivent donc ici, faute de quoi ils seraient les
       seules cibles de l'écran à rester sous 44 px. */
    .lnc-barre .et-ctrl,
    .lnc-barre .et-societe-btn,
    .lnc-barre .et-user { min-width: 44px; min-height: 44px; }
}
@media (max-width: 992px) {
    .lnc-barre { gap: 8px; }
}
@media (max-width: 720px) {
    .lnc-onglets { overflow-x: auto; flex-wrap: nowrap; }
    .lnc-cta { flex: 1; justify-content: center; }
    .lnc-legende { display: none; }
    .lnc-barre, .lnc-entete, .lnc-corps {
        padding-left: max(12px, var(--et-safe-gauche));
        padding-right: max(12px, var(--et-safe-droite));
    }
}
