body.appli{padding-bottom: calc(84px + var(--bas-sur));min-height: 100dvh}.barre{position: sticky;top: 0;z-index: 30;background: var(--nuit);color: #fff;padding: calc(10px + var(--haut-sur)) 16px 10px;display: flex;align-items: center;justify-content: space-between;gap: 12px}.barre .marque img{height: 32px;width: auto}.barre-etat{font-size: 13px;font-weight: 700;background: rgba(255,255,255,.12);color: #fff;padding: 5px 10px;border-radius: 99px}.vue{max-width: 620px;margin: 0 auto;padding: 18px 16px 30px;outline: none}.onglets-bas{position: fixed;z-index: 40;left: 0;right: 0;bottom: 0;background: rgba(255,255,255,.96);backdrop-filter: blur(10px);-webkit-backdrop-filter: blur(10px);border-top: 1px solid var(--trait);display: flex;justify-content: center;padding: 6px 8px calc(6px + var(--bas-sur))}.onglets-bas a{position: relative;flex: 1;max-width: 190px;display: grid;justify-items: center;gap: 2px;padding: 6px 4px;color: var(--encre-3);text-decoration: none;font-size: 12.5px;font-weight: 700;border-radius: 12px}.onglets-bas a .ic svg{width: 24px;height: 24px}.onglets-bas a[aria-current="page"]{color: var(--nuit)}.onglets-bas a[aria-current="page"] .ic{background: var(--jaune);border-radius: 99px;padding: 2px 16px}.onglets-bas a .ic{padding: 2px 16px;transition: background .2s}.pastille{position: absolute;top: 2px;left: calc(50% + 10px);min-width: 20px;height: 20px;border-radius: 10px;padding: 0 6px;background: var(--laterite);color: #fff;font-size: 12px;display: grid;place-items: center}.titre-etape{font-family: var(--f-affiche);font-weight: 900;text-transform: uppercase;font-size: 40px;line-height: .92;letter-spacing: .01em}.titre-etape span{color: var(--petrole)}.sous-titre{color: var(--encre-2);margin-top: 8px;font-size: 16px}.retour{display: inline-flex;align-items: center;gap: 4px;color: var(--encre-2);text-decoration: none;font-weight: 700;font-size: 15px;margin: -4px 0 10px -6px;padding: 6px;border-radius: 10px}.retour svg{width: 20px;height: 20px}.compagnies{display: grid;gap: 10px;margin-top: 18px}.compagnie{display: grid;grid-template-columns: 58px 1fr auto;gap: 14px;align-items: center;background: var(--blanc);border-radius: var(--rayon);padding: 14px;box-shadow: var(--ombre);text-decoration: none;color: inherit;border: 2px solid transparent;transition: border-color .15s,transform .12s}.compagnie:hover{border-color: var(--jaune)}.compagnie:active{transform: scale(.99)}.sigle{width: 58px;height: 58px;border-radius: 15px;display: grid;place-items: center;color: #fff;font-family: var(--f-affiche);font-weight: 900;font-size: 22px;letter-spacing: .02em;text-transform: uppercase;box-shadow: inset 0 -3px 0 rgba(0,0,0,.2)}.compagnie h3{font-size: 18px}.compagnie p{color: var(--encre-2);font-size: 14px;margin-top: 2px}.compagnie .va{color: var(--encre-3)}.compagnie .va svg{width: 22px;height: 22px}.recherche{position: relative;margin-top: 16px}.recherche input{padding-left: 46px}.recherche svg{position: absolute;left: 14px;top: 50%;transform: translateY(-50%);width: 20px;height: 20px;color: var(--encre-3)}.entete-compagnie{display: flex;gap: 12px;align-items: center}.entete-compagnie .sigle{width: 48px;height: 48px;font-size: 18px;border-radius: 13px}.entete-compagnie h1{font-size: 22px}.entete-compagnie p{color: var(--encre-2);font-size: 14px}.destinations{margin-top: 16px}.jour-titre{font-weight: 700;color: var(--encre-2);font-size: 14.5px;margin: 22px 2px 10px;text-transform: none}.departs{display: grid;gap: 12px}.depart{position: relative;display: block;width: 100%;text-align: left;border: 0;padding: 0;background: var(--blanc);border-radius: var(--rayon);box-shadow: var(--ombre);overflow: hidden;transition: transform .12s,box-shadow .15s}.depart:not(.ferme):hover{box-shadow: 0 0 0 2px var(--jaune),var(--ombre)}.depart:not(.ferme):active{transform: scale(.995)}.depart .plaque{border-radius: 0}.depart .corps{padding: 12px 14px 14px;display: grid;gap: 10px}.depart .ligne1{display: flex;align-items: flex-end;justify-content: space-between;gap: 10px}.depart .heure{font-family: var(--f-affiche);font-weight: 900;font-size: 44px;line-height: .85;font-variant-numeric: tabular-nums}.depart .heure small{display: block;font-family: var(--f-texte);font-weight: 700;font-size: 12.5px;color: var(--encre-2);letter-spacing: 0;text-transform: none;margin-bottom: 4px}.depart .prix{text-align: right}.depart .prix strong{display: block;font-family: var(--f-affiche);font-weight: 900;font-size: 28px;line-height: 1;white-space: nowrap}.depart .prix small{color: var(--encre-2);font-size: 12.5px}.depart .infos{display: flex;flex-wrap: wrap;gap: 6px 14px;font-size: 14px;color: var(--encre-2)}.depart .infos span{display: inline-flex;align-items: center;gap: 5px}.depart .infos svg{width: 16px;height: 16px}.depart .places{display: flex;align-items: center;justify-content: space-between;gap: 10px;font-size: 14.5px}.depart .places b{font-weight: 700}.depart .places .peu{color: var(--laterite)}.depart .cta{display: inline-flex;align-items: center;gap: 4px;font-weight: 700;color: var(--petrole);white-space: nowrap}.depart .cta svg{width: 18px;height: 18px}.depart.ferme{cursor: default}.depart.ferme .corps,.depart.ferme .plaque{filter: grayscale(.9);opacity: .55}.resume-depart{display: grid;gap: 8px;margin-bottom: 18px}.resume-depart .meta{display: flex;flex-wrap: wrap;gap: 4px 16px;color: var(--encre-2);font-size: 14.5px}.resume-depart .meta b{color: var(--encre)}.noms{margin-top: 14px}.noms summary{cursor: pointer;font-weight: 700;color: var(--petrole);padding: 6px 0}.noms .champ{margin-top: 10px}.recu{background: var(--blanc);border-radius: 20px;box-shadow: var(--ombre);overflow: hidden}.recu .haut{padding: 16px;display: grid;gap: 12px}.recu .montant{display: flex;flex-wrap: wrap;justify-content: space-between;align-items: flex-end;gap: 10px}.recu .montant strong{font-family: var(--f-affiche);font-weight: 900;font-size: 46px;line-height: .9}.recu .montant small{display: block;color: var(--encre-2);font-size: 13.5px}.perfo{height: 22px;position: relative;background: radial-gradient(circle at 0 50%,var(--ciment) 10px,transparent 10.5px),radial-gradient(circle at 100% 50%,var(--ciment) 10px,transparent 10.5px)}.perfo::after{content: "";position: absolute;left: 18px;right: 18px;top: 50%;border-top: 2px dashed var(--trait)}.recu .bas{padding: 4px 16px 18px}.chrono{display: inline-flex;align-items: center;gap: 8px;white-space: nowrap;font-weight: 700;background: var(--jaune-pale);color: #6E4A00;border-radius: 99px;padding: 6px 12px;font-size: 14.5px}.chrono svg{width: 18px;height: 18px}.chrono.urgent{background: var(--laterite-pale);color: #9F2F18}.moyens{display: grid;gap: 10px;margin-top: 12px}.moyen{border: 1.5px solid var(--trait);border-radius: 15px;padding: 12px 14px;display: grid;gap: 8px}.moyen .nom{font-weight: 700;display: flex;justify-content: space-between;gap: 8px}.moyen .numero{font-family: var(--f-code);font-weight: 700;font-size: 24px;letter-spacing: .02em}.moyen .titulaire{font-size: 13.5px;color: var(--encre-2)}.moyen .boutons{display: flex;flex-wrap: wrap;gap: 8px}.ussd{font-family: var(--f-code);font-size: 15px;background: var(--ciment);border-radius: 8px;padding: 6px 10px;word-break: break-all}.attente{text-align: center;padding: 26px 16px 8px}.attente .pulse{width: 86px;height: 86px;margin: 0 auto 16px;border-radius: 50%;background: var(--jaune-pale);display: grid;place-items: center;position: relative}.attente .pulse::before,.attente .pulse::after{content: "";position: absolute;inset: 0;border-radius: 50%;border: 2px solid var(--jaune);animation: onde 2s ease-out infinite}.attente .pulse::after{animation-delay: 1s}.attente .pulse svg{width: 38px;height: 38px;color: #8A5D00}@keyframes onde{from{transform: scale(1);opacity: .9}to{transform: scale(1.7);opacity: 0}}.attente h2{font-family: var(--f-affiche);font-weight: 900;text-transform: uppercase;font-size: 30px}.attente p{color: var(--encre-2);margin-top: 6px}.liste-billets{display: grid;gap: 12px}.ticket{position: relative;display: block;text-decoration: none;color: inherit;background: var(--blanc);border-radius: 18px;box-shadow: var(--ombre);overflow: hidden}.ticket .plaque{border-radius: 0}.ticket .infos{padding: 12px 14px 14px;display: grid;grid-template-columns: 1fr auto;gap: 6px 12px;align-items: end}.ticket .infos .heure{font-family: var(--f-affiche);font-weight: 900;font-size: 34px;line-height: .9}.ticket .infos .jour{color: var(--encre-2);font-size: 14px}.ticket .infos .droite{text-align: right;display: grid;gap: 6px;justify-items: end}.ticket .motif{grid-column: 1 / -1;font-size: 14px;color: #9F2F18}.ticket.passe{opacity: .62}.plein-ecran{position: fixed;inset: 0;z-index: 70;background: var(--nuit);color: #fff;overflow-y: auto;padding: calc(12px + var(--haut-sur)) 16px calc(24px + var(--bas-sur))}.plein-ecran .haut-billet{display: flex;align-items: center;justify-content: space-between;gap: 10px;max-width: 460px;margin: 0 auto 12px}.plein-ecran .haut-billet .fermer{background: rgba(255,255,255,.1);color: #fff}.plein-ecran .haut-billet .compte{font-weight: 700;color: rgba(255,255,255,.75)}.billet-qr{max-width: 460px;margin: 0 auto;background: var(--blanc);color: var(--encre);border-radius: 22px;overflow: hidden}.billet-qr .plaque{border-radius: 0;justify-content: center}.billet-qr .voyageur{padding: 14px 16px 4px;display: flex;justify-content: space-between;gap: 10px;align-items: flex-start}.billet-qr .voyageur h2{font-size: 22px}.billet-qr .voyageur small{display: block;color: var(--encre-2);font-size: 13px;font-weight: 700;text-transform: uppercase;letter-spacing: .05em}.billet-qr .rang{text-align: right}.billet-qr .rang strong{font-family: var(--f-affiche);font-weight: 900;font-size: 46px;line-height: .85}.billet-qr .grille{display: grid;grid-template-columns: repeat(3,1fr);gap: 4px 10px;padding: 8px 16px 2px}.billet-qr .grille small{display: block;color: var(--encre-2);font-size: 12px;font-weight: 700;text-transform: uppercase;letter-spacing: .05em}.billet-qr .grille b{font-size: 17px}.zone-qr{position: relative;padding: 10px 26px 8px}.zone-qr .qr{padding: 0}.zone-qr .anneau{position: absolute;inset: 2px 18px 0;pointer-events: none}.horloge-vive{display: flex;align-items: center;justify-content: center;gap: 10px;padding: 2px 16px 0}.horloge-vive .h{font-family: var(--f-code);font-weight: 700;font-size: 26px;font-variant-numeric: tabular-nums;letter-spacing: .02em}.horloge-vive .bande{width: 12px;height: 12px;border-radius: 50%;background: var(--vert);box-shadow: 0 0 0 0 rgba(15,157,99,.6);animation: vie 1.2s ease-out infinite}@keyframes vie{to{box-shadow: 0 0 0 12px rgba(15,157,99,0)}}.billet-qr .pied{padding: 8px 16px 16px;text-align: center;color: var(--encre-2);font-size: 13.5px}.billet-qr .pied .code{color: var(--encre);font-size: 17px}.qr-indispo{margin: 10px 18px;border-radius: 16px;background: var(--ciment);padding: 26px 18px;text-align: center}.qr-indispo svg{width: 42px;height: 42px;margin: 0 auto 8px;color: var(--encre-3)}.qr-indispo b{display: block;font-size: 18px}.embarque{margin: 10px 18px;position: relative;min-height: 150px;border-radius: 16px;background: var(--vert-pale)}.navigation-billets{display: flex;justify-content: center;gap: 10px;margin-top: 14px}.navigation-billets .btn{background: rgba(255,255,255,.1);color: #fff;box-shadow: none;white-space: nowrap;flex: 1;max-width: 200px}.conseil{max-width: 460px;margin: 14px auto 0;display: flex;gap: 8px;align-items: center;color: rgba(255,255,255,.7);font-size: 13.5px;justify-content: center}.conseil svg{width: 18px;height: 18px;flex: none}.profil{display: flex;gap: 14px;align-items: center}.profil .avatar{width: 58px;height: 58px;border-radius: 50%;background: var(--nuit);color: var(--jaune);display: grid;place-items: center;font-family: var(--f-affiche);font-weight: 900;font-size: 24px}.profil h2{font-size: 21px}.squelette{height: 120px;border-radius: var(--rayon);background: linear-gradient(90deg,#E4EAEB 0%,#F3F6F6 50%,#E4EAEB 100%);background-size: 200% 100%;animation: brille 1.2s linear infinite}.squelette + .squelette{margin-top: 12px}@keyframes brille{to{background-position: -200% 0}}@media (min-width: 700px){.titre-etape{font-size: 52px}.compagnies{grid-template-columns: 1fr 1fr}}