.route-modal { width: min(1220px, 96vw); max-height: 94dvh; overflow-y: auto; padding: 24px; }
.route-header { display:flex; justify-content:space-between; align-items:flex-start; gap:20px; margin-bottom:20px; }
.route-header h2 { margin:4px 0 8px; font-size:26px; }
.route-eyebrow { color:var(--cyan); letter-spacing:.15em; font-size:10px; font-weight:700; }
.route-header p,.route-help { color:var(--muted); line-height:1.6; margin:8px 0; font-size:12px; }
.route-layout { display:grid; grid-template-columns:300px minmax(0,1fr); gap:20px; }
.route-controls { display:flex; flex-direction:column; gap:12px; }
.route-controls input[type=text] { width:100%; min-height:44px; padding:11px 12px; border:1px solid var(--line); border-radius:9px; background:var(--field-2); color:var(--text); }
.route-controls > label { font-weight:600; }
.route-selection-header { display:flex; justify-content:space-between; align-items:center; margin-top:8px; }
.route-selection-actions { display:flex; gap:8px; }
.route-selection-actions button { padding:6px 10px; font-size:11px; }
.route-candidates { max-height:230px; overflow:auto; border:1px solid var(--line); border-radius:10px; }
.route-choice { display:flex; gap:10px; align-items:flex-start; padding:12px; border-bottom:1px solid var(--line); cursor:pointer; }
.route-choice:last-child { border-bottom:0; }
.route-choice input { width:17px; height:17px; margin-top:2px; accent-color:var(--accent); flex-shrink:0; }
.route-choice span { min-width:0; overflow-wrap:anywhere; font-size:12px; }
.route-choice small,.route-stop small { display:block; color:var(--muted); margin-top:5px; }
.route-map { height:410px; border:1px solid var(--line); border-radius:12px; background:var(--field-2); isolation:isolate; }
.route-map .leaflet-control-attribution { font-size:10px; color:#333; }
.route-map .leaflet-control-attribution a { color:#07665a; }
.route-pin { display:grid; place-items:center; width:32px; height:32px; background:#087b69; color:white; border:3px solid white; border-radius:50%; font-weight:800; box-shadow:0 2px 8px #0005; }
.route-origin-pin { background:#213d65; }
.route-summary { font-size:18px; margin:16px 0 8px; font-weight:700; }
.route-status { padding:12px 14px; background:var(--field-2); border:1px solid var(--line); border-radius:10px; line-height:1.6; font-size:12px; margin:12px 0; }
.route-results { list-style:none; padding:0; margin:12px 0; display:grid; gap:12px; }
.route-stop { display:flex; gap:12px; border:1px solid var(--line); border-radius:10px; padding:14px; }
.route-stop > div { min-width:0; overflow-wrap:anywhere; }
.route-step-number { background:var(--accent); border-radius:50%; width:28px; height:28px; display:grid; place-items:center; color:white; flex-shrink:0; }
.route-stop a { display:inline-flex; margin:12px 0; text-decoration:none; font-size:12px; }
.route-stop details { color:var(--muted); font-size:12px; line-height:1.7; }
.route-stop summary { cursor:pointer; }
.route-stop details li { margin:8px 0; }
@media(max-width:760px) { .route-modal { padding:16px; width:96vw; } .route-layout { grid-template-columns:1fr; } .route-map { height:340px; } .route-candidates { max-height:160px; } .route-header h2 { font-size:22px; } }
