/* Build 28: consistent independently scrolling portal navigation */
.sidebar,.customer-sidebar,.technician-sidebar,.admin-luxury-sidebar{height:100dvh;min-height:0;overflow:hidden}
.sidebar>nav,.customer-sidebar>.customer-nav,.technician-sidebar>nav,.admin-luxury-sidebar>.admin-nav-scroll{flex:1 1 auto;min-height:0;overflow-y:auto!important;overflow-x:hidden;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:rgba(116,187,255,.38) transparent;padding-bottom:20px}
.sidebar>nav::-webkit-scrollbar,.customer-nav::-webkit-scrollbar,.technician-sidebar>nav::-webkit-scrollbar,.admin-nav-scroll::-webkit-scrollbar{width:6px}.sidebar>nav::-webkit-scrollbar-thumb,.customer-nav::-webkit-scrollbar-thumb,.technician-sidebar>nav::-webkit-scrollbar-thumb,.admin-nav-scroll::-webkit-scrollbar-thumb{background:rgba(116,187,255,.34);border-radius:8px}.sidebar>nav::-webkit-scrollbar-track,.customer-nav::-webkit-scrollbar-track,.technician-sidebar>nav::-webkit-scrollbar-track,.admin-nav-scroll::-webkit-scrollbar-track{background:transparent}
.customer-sidebar-card,.technician-user-card,.admin-sidebar-footer{flex:0 0 auto}.tech-sidebar-v17 nav{padding-bottom:24px!important}.tenant-luxury-sidebar>nav{padding-bottom:35px}.agent-portal-body .sidebar>nav{padding-bottom:28px}
.route-console .portal-hero,.assignment-console .portal-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:30px;background:linear-gradient(125deg,#071b35,#145b93 58%,#148f83);color:#fff;border-radius:22px;box-shadow:0 18px 42px rgba(16,61,102,.18)}.route-group-head{padding:17px 20px;background:#f8fafc;border-bottom:1px solid #e8edf3;display:flex;align-items:center;justify-content:space-between;gap:15px}.route-group-head>div{display:flex;align-items:center;gap:11px}.route-avatar{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:linear-gradient(135deg,#1677ff,#7249e8);color:#fff;font-weight:800}.route-group-head small{color:#8490a1}.route-timeline{padding:20px}.route-stop{display:grid;grid-template-columns:42px 1fr;gap:15px;position:relative;padding-bottom:18px}.route-stop:not(:last-child):before{content:"";position:absolute;left:20px;top:41px;bottom:0;border-left:2px dashed #cbd6e5}.route-stop-number{width:42px;height:42px;border-radius:13px;background:#eaf2ff;color:#1769d2;display:grid;place-items:center;font-weight:900;position:relative;z-index:1}.route-stop-body{padding:15px 17px;border:1px solid #e5eaf1;border-radius:15px;background:#fff}.route-actions,.route-actions form{display:flex;gap:5px}.route-actions form{margin:0}
.assignment-candidate{height:100%;padding:17px;border:1px solid #e2e8f0;border-radius:17px;background:#fff;transition:.2s}.assignment-candidate.recommended{border-color:#5a8ff0;box-shadow:0 12px 28px rgba(51,108,216,.12)}.assignment-candidate.conflicted{background:#fffafa;border-color:#f1d3d7}.candidate-rank{display:block;color:#65758b;text-transform:uppercase;letter-spacing:.07em;font-size:.58rem;font-weight:800;margin-bottom:4px}.score-ring{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:#edf4ff;color:#1768ce;font-weight:900}.candidate-signals{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:15px}.candidate-signals span{font-size:.68rem;color:#68768b}.candidate-signals i{width:17px;margin-right:3px;color:#5980aa}.candidate-signals .good{color:#16805c}.candidate-signals .bad{color:#c43e4d}
@media(max-width:991.98px){.route-console .portal-hero,.assignment-console .portal-hero{align-items:flex-start;flex-direction:column;padding:24px}.route-console .topbar,.assignment-console .topbar{height:auto;min-height:78px;padding-top:12px;padding-bottom:12px;flex-wrap:wrap}.route-actions{flex-wrap:wrap}.candidate-signals{grid-template-columns:1fr}}
