@keyframes ynabFadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.ynab-animate-1{animation:ynabFadeInUp .7s ease-out both}.ynab-animate-2{animation:ynabFadeInUp .7s ease-out .2s both}@keyframes importFadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes rowReveal{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes softCheck{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}@keyframes fileDrop{0%{opacity:0;transform:translateY(-30px) scale(.9)}60%{opacity:1;transform:translateY(4px) scale(1.01)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes zonePulse{0%{border-color:hsl(var(--border))}50%{border-color:hsl(var(--primary)/.4)}to{border-color:hsl(var(--chart-2)/.5)}}@keyframes scanLine{0%{top:0;opacity:0}10%{opacity:1}90%{opacity:1}to{top:100%;opacity:0}}@keyframes statusIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes statusOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-6px)}}@keyframes ringDraw{0%{stroke-dashoffset:100;opacity:0}30%{opacity:1}to{stroke-dashoffset:0;opacity:1}}@keyframes checkDraw{0%{stroke-dashoffset:30;opacity:0}40%{opacity:1}to{stroke-dashoffset:0;opacity:1}}@keyframes extractRow{0%{opacity:0;transform:translateX(-8px);width:0}to{opacity:1;transform:translateX(0);width:100%}}.import-flow .drop-zone{animation:zonePulse 1.2s ease-in-out .2s both}.import-flow .file-card{animation:fileDrop .7s cubic-bezier(.25,1,.5,1) .6s both}.import-flow .scan-line{animation:scanLine 1.2s cubic-bezier(.4,0,.2,1) 1.5s both}.import-flow .extract-1{animation:extractRow .4s cubic-bezier(.25,1,.5,1) 2s both}.import-flow .extract-2{animation:extractRow .4s cubic-bezier(.25,1,.5,1) 2.2s both}.import-flow .extract-3{animation:extractRow .4s cubic-bezier(.25,1,.5,1) 2.4s both}.import-flow .extract-4{animation:extractRow .4s cubic-bezier(.25,1,.5,1) 2.6s both}.import-flow .status-reading{animation:statusIn .3s ease-out 1.4s both,statusOut .3s ease-out 2.7s both}.import-flow .status-done{animation:statusIn .3s ease-out 2.9s both}.import-flow .success-ring{animation:ringDraw .6s cubic-bezier(.25,1,.5,1) 3s both}.import-flow .success-check{animation:checkDraw .4s cubic-bezier(.25,1,.5,1) 3.3s both}.import-flow .row-1{animation:rowReveal .5s ease-out 3.6s both}.import-flow .row-2{animation:rowReveal .5s ease-out 3.9s both}.import-flow .row-3{animation:rowReveal .5s ease-out 4.2s both}.import-flow .row-4{animation:rowReveal .5s ease-out 4.5s both}.import-flow .done-badge{animation:softCheck .4s cubic-bezier(.25,1,.5,1) 4.9s both}details summary~*{max-height:0;opacity:0;overflow:hidden;transform:translateY(-10px);transition:max-height .4s cubic-bezier(.25,1,.5,1),opacity .2s ease-out .1s,transform .4s cubic-bezier(.25,1,.5,1)}details[open] summary~*{max-height:20rem;opacity:1;transform:translateY(0)}@media (prefers-reduced-motion:reduce){.ynab-animate-1,.ynab-animate-2{animation:none}.import-flow .done-badge,.import-flow .drop-zone,.import-flow .extract-1,.import-flow .extract-2,.import-flow .extract-3,.import-flow .extract-4,.import-flow .file-card,.import-flow .row-1,.import-flow .row-2,.import-flow .row-3,.import-flow .row-4,.import-flow .scan-line,.import-flow .status-done,.import-flow .status-reading,.import-flow .success-check,.import-flow .success-ring{animation:none;opacity:1}}