.route-loading-bar{position:fixed;top:0;left:0;right:0;height:3px;background:hsl(var(--primary)/.1);z-index:9999;overflow:hidden;animation:barFadeIn .15s ease-out}.route-loading-bar-progress{height:100%;background:linear-gradient(90deg,hsl(var(--primary)) 0,hsl(var(--primary)/.9) 40%,hsl(var(--primary)) 100%);background-size:200% 100%;animation:shimmer 1s linear infinite;transition:width .2s ease-out;border-radius:0 2px 2px 0;box-shadow:0 0 12px hsl(var(--primary)/.6),0 0 6px hsl(var(--primary)/.4),0 1px 3px hsl(var(--primary)/.3)}@keyframes barFadeIn{0%{opacity:0}to{opacity:1}}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.route-loading-overlay{position:fixed;inset:0;background:hsl(var(--background)/.85);backdrop-filter:blur(8px);z-index:9998;display:flex;align-items:center;justify-content:center;animation:fadeIn .3s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.route-loading-content{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:2rem;border-radius:1rem;background:hsl(var(--card));border:1px solid hsl(var(--border));box-shadow:0 25px 50px -12px rgba(0,0,0,.25);animation:slideUp .4s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.route-loading-logo{animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.05);opacity:.8}}.route-loading-spinner{display:flex;align-items:center;justify-content:center}.route-loading-text{font-size:.875rem;font-weight:500;color:hsl(var(--foreground));margin:0}.route-loading-hint{font-size:.75rem;color:hsl(var(--muted-foreground));margin:0;animation:blink 2s ease-in-out infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:.5}}