.routes-sheet{max-width:960px;}
.routes-header{display:flex;align-items:center;gap:.75rem;padding:.5rem 1rem;border-bottom:1px solid var(--border-color,#ddd);}
.routes-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:12px;padding:12px;max-height:60vh;overflow:auto;}
.route-card{position:relative;display:flex;flex-direction:column;background:#fff;border:1px solid #ccc;border-radius:8px;padding:6px 6px 8px;box-shadow:0 1px 2px rgba(0,0,0,.08);cursor:pointer;transition:box-shadow .15s,border-color .15s;}
.route-card:focus-visible,.route-card:hover{outline:none;border-color:#018752;box-shadow:0 0 0 2px #01875244;}
.route-map{position:relative;border:1px solid #bbb;border-radius:6px;overflow:hidden;margin-bottom:8px;background:#e9ecef;aspect-ratio:16/9;min-height:180px;}
.route-meta{font-size:.75rem;line-height:1.2;display:flex;flex-direction:column;gap:2px;}
.route-meta strong{font-weight:600;}
.route-dist{font-size:.8rem;font-weight:600;color:#111;}
.route-points{font-size:.7rem;color:#444;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}
.route-date{font-size:.6rem;color:#666;}
.route-badges{position:absolute;top:4px;left:4px;display:flex;gap:4px;flex-wrap:wrap;}
.route-badge{background:#018752;color:#fff;font-size:.55rem;font-weight:600;padding:2px 4px;border-radius:4px;letter-spacing:.5px;text-transform:uppercase;}
.route-actions{position:absolute;top:4px;right:4px;display:flex;gap:4px;}
.route-actions button{background:rgba(0,0,0,.55);color:#fff;border:none;padding:2px 4px;border-radius:4px;font-size:.55rem;cursor:pointer;}
.route-actions button:hover{background:#c62828;}
.routes-footer{display:flex;align-items:center;gap:.75rem;padding:.5rem 1rem;border-top:1px solid var(--border-color,#ddd);}
.routes-empty{padding:2rem;text-align:center;color:#555;font-size:.9rem;}
/* Mini map inside card */
.route-map canvas, .route-map .leaflet-container{width:100%!important;height:100%!important;}
@media (max-width:700px){.routes-list{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));}.route-map{min-height:150px;}}

#btp-routes-modal.backdrop { position:fixed; inset:0; background:rgba(0,0,0,.4); display:none; align-items:center; justify-content:center; z-index:2100; }
#btp-routes-modal.backdrop[aria-hidden="false"] { display:flex; }
#btp-routes-modal .sheet { width:min(98vw,1100px); max-height:80vh; display:flex; flex-direction:column; background:#fff; color:#111; border:1px solid var(--border-color,#d0d0d0); border-radius:14px; box-shadow:0 10px 30px rgba(0,0,0,.35); overflow:hidden; }
#btp-routes-modal .routes-header h3 { margin:0; font-size:1rem; font-weight:600; display:flex; align-items:center; gap:.5rem; }
#btp-routes-modal .routes-header button { flex:0 0 auto; }
/* Focus visible inside modal */
#btp-routes-modal :focus-visible { outline:2px solid #018752; outline-offset:2px; }
/* Mobile: plein écran bas (comme settings) */
@media (max-width:640px){
  #btp-routes-modal.backdrop { align-items:flex-end; }
  #btp-routes-modal .sheet { width:100%; max-height:88vh; border-radius:16px 16px 0 0; }
}
