.map-route-preview{display:grid;gap:6px;margin:10px 0;padding:12px;border:1px solid #b9cce8;border-radius:12px;background:#fff;color:#183b59;overflow-wrap:anywhere}
.map-route-preview>strong{font-size:16px;line-height:1.4;display:flex;align-items:center;gap:8px}
.map-route-preview>span,.map-route-preview>small{font-size:12px;line-height:1.5}
.map-route-preview>small{color:#596e7d}
.map-route-preview.ready{background:#edf5ff;border-color:#7ea8e6}
.map-route-preview.error{border-color:#d88989;background:#fff4f4}
.map-route-preview>button{justify-self:start;min-height:44px;height:auto;padding:8px 12px;white-space:normal;font-size:12px;color:#244763;background:#fff;border:1px solid #b9cce8;border-radius:8px}
.route-spinner{width:16px;height:16px;flex:none;border:2px solid #bfd5f3;border-top-color:#2563eb;border-radius:50%;animation:route-spin 1s linear infinite}
@keyframes route-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.route-spinner{animation:none}}
/* Size the list from the remaining space; results never stretch the map shell. */
body #mapView .map-sidebar{display:flex;flex-direction:column;overflow:hidden}
#mapView .map-sidebar-head,#mapView .map-logistics-controls{flex:none}
body #mapView .map-job-list{flex:1;min-height:0;height:auto;overflow-y:auto;overscroll-behavior:contain}
#mapJobList .map-job-card>div{min-width:0}
#mapJobList .map-job-card p,#mapJobList .map-job-card small{overflow-wrap:anywhere}
#mapJobList [aria-disabled="true"]{opacity:.65;cursor:wait}
@media(max-width:760px){body #mapView .map-sidebar{height:460px;max-height:calc(100% - 180px)}}
/* Dashboard uses the same explicit route action and result, beside/below its map. */
#dashboardMapList .dashboard-route-card{padding:14px;border-bottom:1px solid #dce5ee;background:#fff;min-width:0;color:#183b59}
#dashboardMapList .dashboard-route-summary{display:grid;grid-template-columns:36px minmax(0,1fr);gap:10px;cursor:pointer}
#dashboardMapList .dashboard-route-summary .avatar{width:36px;height:36px;font-size:12px}
#dashboardMapList .dashboard-route-summary strong,#dashboardMapList .dashboard-route-summary small,#dashboardMapList .dashboard-route-summary div>span{display:block;overflow-wrap:anywhere;line-height:1.45}
#dashboardMapList .dashboard-route-summary strong{font-size:14px}
#dashboardMapList .dashboard-route-summary small{font-size:12px;color:#2563a3;margin:3px 0}
#dashboardMapList .dashboard-route-summary div>span{font-size:12px;color:#596e7d}
#dashboardMapList .dashboard-route-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
#dashboardMapList button{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:auto;min-height:44px;height:auto;padding:9px 12px;border:1px solid #b9cce8;border-radius:10px;background:#fff;color:#244763;text-align:center;font-size:13px;font-weight:600;line-height:1.4;white-space:normal;overflow-wrap:anywhere;max-width:100%}
#dashboardMapList button:hover{background:#eaf3ff}
#dashboardMapList button:focus-visible{outline:3px solid #2563eb;outline-offset:2px}
#dashboardMapList button[data-dashboard-map-route]{flex:1;background:#edf5ff;color:#194f9c;border-color:#7ea8e6}
#dashboardMapList button svg{width:18px;height:18px;flex:none}
#dashboardMapList button[aria-disabled="true"]{cursor:wait}
#dashboardMapList .dashboard-route-unavailable{flex:1;font-size:12px;align-self:center;line-height:1.4}
#dashboardMapList .map-route-preview{scroll-margin-block:16px}
@media(max-width:760px){body .dashboard-map-layout>aside>#dashboardMapList{height:360px;max-height:60svh;overscroll-behavior:contain}}
