.bandeau { position: sticky; top: 0; z-index: 10; display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; padding: 0.75rem 1rem; background: #1b3a5c; color: #fff; } .marque { color: #fff; font-size: 1.15rem; font-weight: 600; text-decoration: none; } .utilisateur { font-size: 0.8rem; opacity: 0.85; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 55%; } /* L'état du réseau change ce que l'application permet : il se voit dans le bandeau, en permanence, et pas seulement au moment où une action échoue. */ .pastille-hors-ligne { flex: 0 0 auto; font-size: 0.75rem; font-weight: 600; letter-spacing: 0.02em; padding: 0.15rem 0.5rem; border-radius: 999px; background: #f5d76e; color: #4a3800; white-space: nowrap; } /* Dire d'où viennent les données affichées, et de quand elles datent : sans cette phrase, un catalogue hors-ligne est indiscernable d'un catalogue à jour. */ .bandeau-reseau { max-width: 46rem; margin: 0 auto; padding: 0.6rem 1rem; background: #fff8e1; border-bottom: 1px solid #e6d28a; color: #6b5200; font-size: 0.9rem; } .contenu { display: block; width: 100%; max-width: 46rem; margin: 0 auto; /* Marge basse généreuse : ni les onglets ni les actions flottantes ne doivent masquer le dernier livre de la liste. */ padding: 1rem 1rem 9rem; } /* --- Onglets de navigation --- */ .onglets { position: fixed; left: 0; right: 0; bottom: 0; z-index: 20; display: flex; background: #fff; border-top: 1px solid var(--mb-bord); padding-bottom: env(safe-area-inset-bottom); /* Hauteur figée et partagée : .actions-flottantes s'en sert pour se poser juste au-dessus. */ height: calc(var(--mb-onglets-hauteur) + env(safe-area-inset-bottom)); } .onglet { flex: 1 1 0; padding: 0.4rem 0.25rem; line-height: 1.4; text-align: center; text-decoration: none; font-size: 0.8rem; color: var(--mb-texte-doux); /* Le trait actif est posé en haut de l'onglet, du côté du contenu qu'il désigne. */ border-top: 3px solid transparent; /* Le libellé ne doit jamais passer sur deux lignes. Cinq onglets tiennent sur 320 px à cette taille ; c'est la raison du 0.8rem plutôt que du 0.85rem d'avant « Séries ». */ white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } /* NavLink pose « active » tout seul ; « Catalogue » utilise NavLinkMatch.All, sans quoi il resterait allumé sur toutes les pages — son href est la racine. */ .onglet.active { color: var(--mb-accent); font-weight: 600; border-top-color: var(--mb-accent); background: var(--mb-fond-doux); }