@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-pulse{animation:pulse 1.5s infinite}.animate-rotate{animation:rotate 2s linear infinite}.recording .outer-circle{border-color:#ef4444}.recording .inner-circle{background-color:#ef4444}.bus-position{transition:transform .5s ease-in-out,left .5s ease-in-out;transform:translate(-50%)}.loading-container{position:relative;width:312px;max-width:80%;height:80px;margin-bottom:10px}.loading-track{position:absolute;bottom:0;left:0;width:100%;height:8px;background-color:#1c7eff1a;border-radius:4px;overflow:hidden}.loading-bar-fill{height:100%;background-color:#1c7eff;border-radius:4px;width:var(--progress, 0%);transition:width .1s linear;position:absolute;bottom:0;left:0}.loading-bus-wrapper{position:absolute;bottom:15px;left:var(--progress, 0%);width:60px;height:35px;transform:translate(-100%);transition:left .1s linear;z-index:10;display:flex;justify-content:center;align-items:center}.loading-bus-wrapper img{width:100%;height:100%;object-fit:contain}.route-progress-track{position:relative;width:100%;height:12px;margin-top:30px;display:flex;align-items:center;background-color:transparent}.progress-bar-segment{height:100%;flex-grow:1;background-color:#dbeafe;transition:background-color .5s ease-in-out;position:relative;margin:0 2px}.progress-bar-segment:first-child{border-top-left-radius:9999px;border-bottom-left-radius:9999px;margin-left:0}.progress-bar-segment:last-child{border-top-right-radius:9999px;border-bottom-right-radius:9999px;margin-right:0}.progress-bar-segment.completed{background-color:#3b82f6}.time-label{position:absolute;top:-25px;left:50%;transform:translate(-50%);font-size:12px;color:#9ca3af;white-space:nowrap;font-weight:500;transition:color .3s ease}.progress-bar-segment.completed .time-label{color:#3b82f6;font-weight:700}.route-bus-icon-wrapper{position:absolute;bottom:18px;left:0;width:50px;height:30px;transform:translate(-50%);transition:left .5s ease-in-out;z-index:20;pointer-events:none;display:flex;justify-content:center;align-items:center}.route-bus-icon-wrapper img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 2px 4px rgba(0,0,0,.1))}.route-dot{position:absolute;top:50%;width:16px;height:16px;border-radius:50%;transform:translate(-50%,-50%);z-index:15;background-color:#91c0fd;transition:background-color .5s ease-in-out,border-color .5s ease-in-out;box-shadow:0 1px 2px #0000001a}.route-dot.active{background-color:#3b82f6;border-color:#3b82f6}html,body,#root{height:100%;margin:0;padding:0;overflow:hidden}@tailwind base;@tailwind components;@tailwind utilities;
