.route-planning{display:flex;flex-direction:column;gap:18px}.route-controls{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;padding:12px}.route-controls label{display:flex;flex-direction:column;gap:5px;font-size:10px;color:#526574;font-weight:600}.route-controls input{border:1px solid #c7d0d8;border-radius:6px;padding:8px 9px;color:#263746;background:#fff}.route-controls .button{margin-left:auto}.route-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.route-stat{padding:10px 13px;background:#f3f6f8;border:1px solid #d8e0e5;border-radius:7px}.route-stat span{display:block;font-size:9px;text-transform:uppercase;color:#697b87}.route-stat strong{display:block;margin-top:3px;font-size:21px;color:#29495c}.route-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.route-card{background:#fff;border:1px solid #d9e0e5;border-radius:9px;padding:14px}.route-card-heading{display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid #e4e9ed;padding-bottom:10px}.route-label{font-size:9px;color:#385a70;font-weight:700;letter-spacing:.08em}.route-card h2{margin:3px 0;font-size:14px;color:#263746}.route-card p{margin:0;color:#687985;font-size:10px}.route-distance{font-size:9px;color:#687985;white-space:nowrap}.route-order-list{margin-top:9px}.route-order{display:flex;flex-direction:column;gap:2px;padding:7px 0;border-bottom:1px solid #edf0f2}.route-order strong{font-size:10px;color:#344b5c;font-weight:600}.route-order span,.route-more{font-size:9px;color:#71818c}.route-more{display:block;padding-top:8px}@media(max-width:760px){.route-results{grid-template-columns:1fr}.route-summary{grid-template-columns:1fr 1fr}.route-controls .button{margin-left:0;width:100%}}
.route-order-number{display:inline-grid;place-items:center;width:18px;height:18px;margin-right:6px;border-radius:50%;background:#e7edf1;color:#385a70;font-size:9px}
.route-map svg{display:block}
.route-map-button{margin-top:12px;width:100%;font-size:10px}.route-map-dialog{width:min(920px,calc(100vw - 32px));border:0;border-radius:12px;padding:18px;background:#fff;box-shadow:0 24px 70px rgba(23,42,52,.28)}.route-map-dialog::backdrop{background:rgba(20,35,42,.46)}.route-map-heading{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.route-map-heading h2{margin:3px 0;color:#263746;font-size:18px}.route-map-heading p{margin:0;color:#687985;font-size:10px}.route-map{height:420px;overflow:hidden;border:1px solid #d9e0e5;border-radius:8px;background:#f4f7f9}.route-map svg{width:100%;height:100%}.route-map text{font:600 10px sans-serif;fill:#344b5c}.map-point{fill:#fff;stroke:#34586b;stroke-width:3}.map-point.start{fill:#2c806e;stroke:#1d5d50}.map-point.end{fill:#b45f57;stroke:#833f3a}.route-map-legend{display:flex;gap:16px;margin-top:10px;color:#536574;font-size:10px}.route-dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:#fff;border:2px solid #34586b;margin-right:5px;vertical-align:-1px}.route-dot.start{background:#2c806e;border-color:#1d5d50}.route-dot.end{background:#b45f57;border-color:#833f3a}
.route-map svg{display:none}.route-marker{background:transparent;border:0}.route-marker span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#fff;border:3px solid #34586b;color:#29495c;font:700 10px sans-serif;box-shadow:0 2px 5px rgba(20,35,42,.25)}.route-marker.start span{background:#2c806e;border-color:#1d5d50;color:#fff}.route-marker.end span{background:#b45f57;border-color:#833f3a;color:#fff}
.route-results{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.route-card{border-radius:8px;padding:10px}.route-card-heading{gap:8px;padding-bottom:8px}.route-label{font-size:8px}.route-card h2{font-size:12px}.route-card p{font-size:9px}.route-distance{font-size:8px}.route-order-list{margin-top:6px}.route-order{padding:5px 0}.route-order strong{font-size:9px}
.route-map .leaflet-overlay-pane svg{display:block!important}.route-map .leaflet-overlay-pane path{stroke-dasharray:8 8!important;stroke-width:4!important;stroke:#34586b!important;opacity:1!important}
.route-marker span{position:relative;z-index:2}.route-flag{position:absolute;top:-12px;left:9px;color:#2c806e;font-size:13px;line-height:1}.route-marker.end .route-flag{color:#b45f57}.route-number-label{background:#263746;border:0;border-radius:4px;color:#fff;font:700 9px sans-serif;padding:2px 5px}.route-number-label::before{border-top-color:#263746}
.route-marker{overflow:visible!important}.route-marker>span .route-flag{position:absolute!important;display:block!important;top:-20px!important;left:8px!important;width:auto!important;height:auto!important;margin:0!important;padding:0!important;border:0!important;background:transparent!important;color:#21806d!important;font:700 19px/1 sans-serif!important;text-shadow:0 1px 2px rgba(20,35,42,.35)}.route-marker.end>span .route-flag{color:#c05049!important}
.route-map-dialog{width:min(1180px,calc(100vw - 24px));max-width:1180px;padding:16px}.route-map-heading{padding-bottom:10px;border-bottom:1px solid #d9e0e5;margin-bottom:10px}.route-map-heading h2{font-size:16px;color:#263746}.route-map-heading p{font-size:10px;color:#536574}.route-map-actions{display:flex;align-items:center;gap:6px}.route-map-actions .button{font-size:9px;padding:6px 9px}.route-map{height:570px}.route-map-legend{padding-top:2px}.route-map .leaflet-control-attribution{display:none!important}
.route-map-dialog{max-height:calc(100vh - 24px);box-sizing:border-box;overflow:auto}.route-map-heading>div:first-child{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap}.route-map-heading .route-label{margin-right:2px}.route-map-heading p{margin:0}.route-map{height:min(65vh,570px);min-height:280px}
.route-results{grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.route-card-actions{display:flex;justify-content:flex-end;gap:6px;margin-top:8px;padding-top:7px;border-top:1px solid #edf0f2}.route-icon-button{display:grid;place-items:center;width:28px;height:26px;border:1px solid #c7d4dc;border-radius:6px;background:#f5f7f8;color:#34586b;font-size:16px;line-height:1;cursor:pointer}.route-icon-button:hover{background:#e6edf1;border-color:#8fa5b3;color:#263f50}
.route-card-heading .route-card-actions{margin:0;padding:0;border:0;flex-shrink:0;align-items:center}.route-card-heading{align-items:flex-start}.route-card-heading .route-distance{display:block;margin-top:4px;font-size:8px}.route-icon-button{display:flex;align-items:center;justify-content:center;padding:0;font-family:Arial,sans-serif;font-size:15px;line-height:1;text-align:center}
.route-card-heading .route-distance{display:none}
.route-order-actions{display:flex;gap:4px;margin-top:3px}.route-order-action{border:0;background:transparent;color:#607582;font-size:11px;line-height:1;padding:1px 3px;cursor:pointer}.route-order-action:hover{color:#294f63;background:#edf2f5;border-radius:4px}
.route-move-dialog{width:min(430px,calc(100vw - 28px));border:0;border-radius:10px;padding:18px;background:#fff;box-shadow:0 20px 60px rgba(23,42,52,.28)}.route-move-dialog::backdrop{background:rgba(20,35,42,.46)}.route-move-dialog h2{margin:0 0 6px;color:#263746;font-size:16px}.route-move-dialog p{margin:0 0 14px;color:#607582;font-size:10px}.route-move-dialog label{display:flex;flex-direction:column;gap:5px;color:#526574;font-size:10px;font-weight:600}.route-move-dialog select{padding:8px;border:1px solid #c7d0d8;border-radius:6px;color:#263746;background:#fff}.move-validation{margin-top:10px;padding:9px;border-radius:6px;background:#f3f6f8;color:#536574;font-size:10px}.move-validation.invalid{background:#fff2ef;color:#a6534d}.move-actions{display:flex;justify-content:flex-end;gap:7px;margin-top:15px}.move-actions button{font-size:10px;padding:7px 10px}
@media(max-width:760px){.route-map-dialog{width:calc(100vw - 16px);padding:12px}.route-map{height:60vh;min-height:240px}.route-map-heading>div:first-child{gap:5px}.route-map-heading h2{font-size:14px}.route-map-heading p{width:100%;font-size:9px}}
.route-manage-dialog{width:min(760px,calc(100vw - 28px));max-width:760px;max-height:calc(100vh - 28px);border:0;border-radius:12px;padding:16px;background:#fff;box-shadow:0 24px 70px rgba(23,42,52,.28);color:#263746}.route-manage-dialog::backdrop{background:rgba(20,35,42,.46)}.manage-route-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding-bottom:10px;border-bottom:1px solid #e1e7eb}.manage-route-heading h2{margin:3px 0;color:#263746;font-size:16px}.manage-route-heading p{margin:0;color:#687985;font-size:10px}.manage-route-list{max-height:60vh;overflow:auto;padding-top:5px}.manage-route-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(150px,.7fr) auto;align-items:center;gap:10px;padding:8px 2px;border-bottom:1px solid #edf0f2}.manage-route-row strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#344b5c;font-size:10px;font-weight:600}.manage-route-row>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#71818c;font-size:9px}.manage-route-row>div{display:flex;gap:4px}.manage-route-row .route-order-action{width:24px;height:22px;padding:0;border:1px solid #d5dfe5;border-radius:5px;background:#f7f9fa;text-align:center}.manage-route-row .route-order-action:hover{background:#e8eff2;color:#294f63}@media(max-width:600px){.route-manage-dialog{width:calc(100vw - 16px);padding:12px}.manage-route-row{grid-template-columns:minmax(0,1fr) auto;gap:5px}.manage-route-row>span{grid-column:1}.manage-route-row>div{grid-column:2;grid-row:1 / span 2}}
.route-card-heading .route-icon-button{background:#2f6171;color:#fff;border-color:#2f6171}.route-card-heading .route-icon-button:hover{background:#234b59;border-color:#234b59;color:#fff}
.unassigned-panel{background:#fff;border:1px solid #d9e0e5;border-radius:9px;padding:13px}.unassigned-heading{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:1px solid #e4e9ed;padding-bottom:9px}.unassigned-heading h2{margin:3px 0;font-size:14px;color:#263746}.unassigned-heading p{margin:0;color:#687985;font-size:10px}.unassigned-heading>strong{font-size:10px;color:#a6534d}.unassigned-list{display:grid;gap:6px;margin-top:8px}.unassigned-row{display:grid;grid-template-columns:minmax(180px,.8fr) minmax(0,1.4fr);gap:12px;align-items:center;padding:8px 2px;border-bottom:1px solid #edf0f2}.unassigned-row strong{display:block;color:#344b5c;font-size:10px}.unassigned-row span{display:block;color:#71818c;font-size:9px;margin-top:3px}.unassigned-options{display:flex;flex-wrap:wrap;gap:5px}.unassigned-assign{font-size:9px;padding:6px 8px}.unassigned-assign small{margin-left:3px;color:#607582}.unassigned-none{color:#a6534d!important}@media(max-width:760px){.unassigned-row{grid-template-columns:1fr}.unassigned-options{justify-content:flex-start}}
.route-toast{position:fixed;z-index:10000;left:50%;bottom:24px;transform:translate(-50%,16px);opacity:0;pointer-events:none;padding:11px 16px;border:1px solid rgba(255,255,255,.2);border-radius:999px;background:rgba(35,56,68,.94);color:#fff;font-size:11px;box-shadow:0 10px 30px rgba(20,35,42,.25);backdrop-filter:blur(14px);transition:opacity .22s ease,transform .22s ease}.route-toast.visible{opacity:1;transform:translate(-50%,0);pointer-events:auto}
.route-toast:has(.route-toast-actions){display:flex;align-items:center;gap:12px}.route-toast-actions{display:flex;gap:5px}.route-toast-actions button{border:0;border-radius:999px;padding:5px 9px;font-size:9px;cursor:pointer}.route-toast-confirm{background:#69b59b;color:#fff}.route-toast-cancel{background:rgba(255,255,255,.16);color:#fff}
.route-planning:not(.unassigned-only) .unassigned-panel{display:none!important}.unassigned-only .page-heading{margin-bottom:4px}.unassigned-only .page-heading h1{font-size:20px}.unassigned-only .upload-subtitle{font-size:11px}.unassigned-only .route-controls,.unassigned-only .route-summary,.unassigned-only .route-results{display:none}.unassigned-only .unassigned-panel{display:block;margin-top:4px}
.established-only .route-controls{display:none}.established-only .route-results{margin-top:2px}
.route-planning .upload-subtitle{display:none}.route-controls #build-routes{padding:6px 10px;font-size:9px;min-height:28px}
.route-planning #download-all-routes{font-size:9px;padding:7px 10px;white-space:nowrap}
.unassigned-only .page-heading{align-items:center}.unassigned-only .route-refresh{margin-left:auto}.unassigned-only #download-unassigned{font-size:9px;padding:7px 10px;white-space:nowrap}.unassigned-only .unassigned-panel{border:0;background:transparent;padding:0}.unassigned-only .unassigned-heading{padding:12px 14px;background:#fff;border:1px solid #d9e0e5;border-radius:10px}.unassigned-only .unassigned-heading h2{font-size:16px}.unassigned-only .unassigned-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:10px 0}.unassigned-only .unassigned-metrics>div{padding:9px 12px;background:#fff;border:1px solid #d9e0e5;border-radius:8px}.unassigned-only .unassigned-metrics span{display:block;color:#71818c;font-size:8px;text-transform:uppercase;letter-spacing:.04em}.unassigned-only .unassigned-metrics strong{display:block;margin-top:2px;color:#29495c;font-size:18px}.unassigned-only .unassigned-filters{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap;padding:10px 12px;margin-bottom:8px;background:#f4f7f9;border:1px solid #d9e0e5;border-radius:8px}.unassigned-only .unassigned-filters label{display:flex;flex-direction:column;gap:4px;color:#526574;font-size:9px;font-weight:600}.unassigned-only .unassigned-filters input,.unassigned-only .unassigned-filters select{min-width:150px;padding:7px 9px;border:1px solid #c7d0d8;border-radius:6px;background:#fff;color:#263746;font-size:10px}.unassigned-only .unassigned-list{padding:0;background:#fff;border:1px solid #d9e0e5;border-radius:10px;overflow:hidden}.unassigned-only .unassigned-row{grid-template-columns:minmax(230px,.8fr) minmax(0,1.5fr);padding:11px 14px}.unassigned-only .unassigned-row:nth-child(even){background:#fbfcfd}.unassigned-only .unassigned-client strong{font-size:11px}.unassigned-only .unassigned-client span{font-size:9px}.unassigned-only .unassigned-assign{background:#e9f1f3;border-color:#c6d9de;color:#2f6171}.unassigned-only .unassigned-assign:hover{background:#d7e7eb}.unassigned-only .unassigned-options{justify-content:flex-end}@media(max-width:760px){.unassigned-only .unassigned-metrics{grid-template-columns:1fr 1fr}.unassigned-only .unassigned-row{grid-template-columns:1fr}.unassigned-only .unassigned-options{justify-content:flex-start}}
.route-planning .page-heading{display:flex;align-items:center;gap:16px}.route-planning .page-heading>div:first-child{flex:1;min-width:220px}.route-planning #route-summary{display:flex;gap:6px;margin-left:auto}.route-planning .route-stat{min-width:68px;padding:6px 8px;border-radius:7px;text-align:right}.route-planning .route-stat span{font-size:7px}.route-planning .route-stat strong{margin-top:1px;font-size:15px}.route-planning #route-refresh{align-self:center;white-space:nowrap}.route-controls{align-items:center}.route-controls label[data-dynamic-filter]{min-width:145px}.route-controls label[data-dynamic-filter] select{padding:8px 9px;border:1px solid #c7d0d8;border-radius:7px;background:#fff;color:#263746;font-size:10px}.route-controls input[type=range]{width:130px;height:4px;padding:0;accent-color:#2f6171}.route-controls output.range-value{display:inline-block;min-width:32px;margin-left:5px;color:#2f6171;font-weight:700;font-size:10px}.route-card .route-order-list{display:none}.route-card.expanded .route-order-list{display:block}.route-card-heading{cursor:pointer}.route-card.expanded .route-card-heading{border-bottom-color:#c9d6dd}
.unassigned-only #download-all-routes{display:none}
.unassigned-only .hidden-unassigned-heading{display:none!important}.unassigned-only .page-heading .unassigned-metrics{display:none!important}.unassigned-filter-count{display:inline-flex;align-items:center;align-self:center;margin-right:auto;padding:6px 9px;border-radius:999px;background:#e8f2ee;color:#277158;font-size:10px;white-space:nowrap}
.unassigned-pagination{display:flex;align-items:center;justify-content:center;gap:10px;padding:10px;background:#f4f7f9;border:1px solid #d9e0e5;border-top:0;border-radius:0 0 9px 9px;color:#526574;font-size:10px}.unassigned-pagination .button{padding:6px 10px;font-size:9px}.unassigned-pagination .button:disabled{opacity:.45;cursor:not-allowed}
.unassigned-bulk-bar{display:flex;align-items:center;gap:10px;padding:8px 12px;background:#fff;border:1px solid #d9e0e5;border-radius:8px;margin-bottom:8px;color:#526574;font-size:9px}.unassigned-bulk-bar label{display:flex;align-items:center;gap:5px;margin-right:auto}.unassigned-bulk-bar input{accent-color:#2f6171}.unassigned-bulk-bar select{padding:6px 8px;border:1px solid #c7d0d8;border-radius:6px;background:#fff;color:#263746;font-size:9px}.unassigned-bulk-bar button{padding:6px 9px;font-size:9px}.unassigned-check{width:15px;height:15px;margin-right:9px;accent-color:#2f6171;vertical-align:middle}@media(max-width:600px){.unassigned-bulk-bar{flex-wrap:wrap}.unassigned-bulk-bar label{width:100%}.unassigned-bulk-bar select,.unassigned-bulk-bar button{flex:1}}
.unassigned-client{display:flex;align-items:flex-start;gap:8px}.unassigned-client .unassigned-check{flex:0 0 15px;margin:1px 0 0}.unassigned-bulk-bar.has-selection{border-color:#2f6171;background:#edf6f4}.unassigned-bulk-bar.has-selection #bulk-assign{background:#2f6171;color:#fff;border-color:#2f6171;font-weight:700;box-shadow:0 3px 10px rgba(47,97,113,.22)}
.unassigned-options::before{content:'Rutas compatibles';display:block;width:100%;margin-bottom:2px;color:#526574;font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.unassigned-options{align-items:center}.unassigned-assign{white-space:nowrap}
.unassigned-assign.route-incompatible{opacity:.45;color:#71818c;background:#f1f3f4;border-color:#d8dfe3;cursor:not-allowed}.unassigned-assign.route-incompatible:hover{background:#f1f3f4}
.route-force-chip{border:1px solid #d9c8a2;border-radius:999px;background:#fffaf0;color:#8b6a2e;padding:3px 6px;font-size:8px;line-height:1;cursor:pointer}.route-force-chip:hover{background:#f8edcf;color:#6e501c}.route-toast.route-toast-force{background:#b84e4e;border-color:#963c3c;color:#fff}
.unassigned-only .page-heading .unassigned-metrics{display:flex;grid-template-columns:none;gap:5px;margin:0 0 0 auto}.unassigned-only .page-heading .unassigned-metrics>div{min-width:68px;padding:5px 7px}.unassigned-only .page-heading .unassigned-metrics span{font-size:7px}.unassigned-only .page-heading .unassigned-metrics strong{font-size:14px}
.unassigned-only .unassigned-heading p{display:none}
