@keyframes flyToTable{0%{transform:translate(0) scale(1);opacity:1}50%{transform:translate(20px,-30px) scale(.8);opacity:.8}to{transform:translateY(-100px) scale(.3);opacity:0}}@keyframes flyFromFavorite{0%{transform:translate(0) scale(1);opacity:1}50%{transform:translateY(-50px) scale(.7);opacity:.7}to{transform:translateY(-150px) scale(.2);opacity:0}}@keyframes slideInBounce{0%{transform:translate(100%);opacity:0}60%{transform:translate(-10px);opacity:1}80%{transform:translate(5px)}to{transform:translate(0);opacity:1}}@keyframes fadeOutLeft{0%{transform:translate(0);opacity:1}to{transform:translate(-30px);opacity:0}}@keyframes buttonPress{0%{transform:scale(1)}50%{transform:scale(.95)}to{transform:scale(1)}}@keyframes checkmark{0%{transform:scale(0);opacity:0}50%{transform:scale(1.3);opacity:1}to{transform:scale(1);opacity:1}}@keyframes shootRight{0%{transform:translate(0) scale(1)}50%{transform:translate(15px) scale(1.05)}to{transform:translate(0) scale(1)}}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-5px)}20%,40%,60%,80%{transform:translate(5px)}}@keyframes pulse{0%,to{transform:scale(1);box-shadow:0 0 #0ea5e966}50%{transform:scale(1.05);box-shadow:0 0 0 10px #0ea5e900}}.flying-card{position:fixed;background:#fff;border:2px solid #7ba9c1;border-radius:8px;padding:12px 16px;font-weight:600;color:#0f172a;box-shadow:0 4px 12px #00000026;z-index:9999;pointer-events:none;white-space:nowrap}.animate-fly-to-table{animation:flyToTable .6s ease-out forwards}.animate-fly-from-favorite{animation:flyFromFavorite .7s ease-out forwards}.animate-slide-in{animation:slideInBounce .5s ease-out forwards}.animate-fade-out{animation:fadeOutLeft .3s ease-out forwards}.animate-button-press{animation:buttonPress .2s ease-out}.animate-checkmark{animation:checkmark .4s ease-out}.animate-shake{animation:shake .5s ease-out}.animate-pulse{animation:pulse .6s ease-out}.animate-shoot-right{animation:shootRight .4s cubic-bezier(.34,1.56,.64,1)}#stopsTable tbody tr{transition:transform .2s ease,box-shadow .2s ease}#stopsTable tbody tr:hover{transform:translateY(-2px);box-shadow:0 4px 8px #0000001a}svg.animate-checkmark{display:inline-block;animation:checkmark .4s ease-out}@keyframes slideInFromRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideInFromRightStop{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideUpFromBottom{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes fadeInBackdrop{0%{opacity:0}to{opacity:1}}.animate-slide-in-right{animation:slideInFromRight .15s ease-out;animation-fill-mode:both}.animation-complete{animation:none!important;transform:none!important;opacity:1!important}.animate-slide-up{animation:slideUpFromBottom .3s ease-out forwards}.animate-fade-in{animation:fadeInBackdrop .3s ease-out forwards}.trip-row{cursor:move;transition:all .2s ease}.trip-row.drag-over{border-top:3px solid #7ba9c1;background-color:#e0eef4}.trip-row[draggable=true]:active{cursor:grabbing}.drag-handle{cursor:grab;user-select:none}.drag-handle:active{cursor:grabbing}.trip-row{transition:opacity .2s ease,transform .2s ease,box-shadow .2s ease}
