.carte-trajet { border: 1px solid #dee2e6; border-radius: 12px; overflow: hidden; background: #fff; }
.carte-trajet.ct-erreur { border-color: #dc3545; box-shadow: 0 0 0 .2rem rgba(220,53,69,.15); }
.ct-barre { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; padding: .6rem; border-bottom: 1px solid #dee2e6; background: #f8f9fa; }
.ct-choix { display: flex; gap: .4rem; }
.ct-btn-point { border: 1px solid #ced4da; background: #fff; border-radius: 30px; padding: .25rem .8rem .25rem .3rem; font-size: .85rem; font-weight: 600; display: inline-flex; align-items: center; gap: .4rem; color: #495057; }
.ct-btn-point.actif { border-color: #212529; color: #212529; box-shadow: 0 0 0 2px rgba(33,37,41,.12); }
.ct-recherche { position: relative; flex: 1 1 200px; }
.ct-resultats { position: absolute; top: 100%; left: 0; right: 0; z-index: 1001; max-height: 220px; overflow-y: auto; box-shadow: 0 6px 18px rgba(0,0,0,.12); }
.ct-resultats .list-group-item { font-size: .82rem; padding: .4rem .6rem; }
.ct-map { height: 340px; }
.ct-aide { padding: .5rem .75rem 0; }
.ct-info { padding: .5rem .75rem .7rem; font-size: .92rem; }
.ct-info:empty { display: none; }
.ct-info table { width: 100%; font-size: .88rem; margin: 0; }
.ct-info td { padding: .15rem 0; }
.ct-info td:last-child { text-align: right; white-space: nowrap; }
.ct-frais { font-weight: 700; }
.ct-pastille { display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; border-radius: 50%; color: #fff; font-weight: 700; font-size: .75rem; }
.ct-a { background: #1F9D55; }
.ct-b { background: #E30613; }
.ct-p { background: #0E1A2B; }
.ct-marqueur { display: flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 50% 50% 50% 0; transform: rotate(-45deg); border: 2px solid #fff; box-shadow: 0 2px 6px rgba(0,0,0,.35); }
.ct-marqueur span { transform: rotate(45deg); color: #fff; font-weight: 700; font-size: .8rem; }
@media (max-width: 575.98px) { .ct-map { height: 280px; } }
