.btn{display:inline-flex;align-items:center;justify-content:center;font-weight:600;border:none;border-radius:var(--border-radius-md);cursor:pointer;transition:all .2s ease-in-out;font-family:var(--font-poppins);gap:.5rem;text-wrap:nowrap;max-width:100%}.btn:disabled{opacity:.6;cursor:not-allowed}.btn:focus{outline:none}.btn .btn-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0}.btn.btn-icon-left{flex-direction:row}.btn.btn-icon-right{flex-direction:row-reverse}.btn img,.btn svg{width:1.25em;height:1.25em}.btn-primary{background-color:var(--color-primary);color:var(--color-white)}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-dark)}.btn-light{background-color:var(--color-primary-lighter);color:var(--color-primary);font-weight:400}.btn-light:hover:not(:disabled){background-color:var(--color-primary-light)}.btn-secondary{background-color:var(--color-secondary);color:var(--color-white)}.btn-secondary:hover:not(:disabled){background-color:var(--color-secondary-dark)}.btn-success{background-color:var(--color-success);color:var(--color-white)}.btn-success:hover:not(:disabled){background-color:var(--color-success-light)}.btn-outline{background-color:rgba(0,0,0,0);border:1px solid var(--color-primary);color:var(--color-primary)}.btn-outline:hover:not(:disabled){background-color:var(--color-primary-lighter)}.btn-danger{background-color:var(--color-error);color:var(--color-white)}.btn-danger:hover:not(:disabled){background-color:var(--color-error-light)}.btn-accent{background-color:var(--color-accent);color:var(--color-white)}.btn-accent:hover:not(:disabled){background-color:var(--color-accent-dark)}.btn-small{padding:.5rem 1rem;font-size:.875rem;border-radius:var(--border-radius-sm)}.btn-small img,.btn-small svg{width:1em;height:1em}.btn-medium{padding:.8rem 1.5rem;font-size:1rem}.btn-medium img,.btn-medium svg{width:1.25em;height:1.25em}.btn-large{padding:1rem 2rem;font-size:1.125rem}.btn-large img,.btn-large svg{width:1.5em;height:1.5em}.btn-full-width{width:100%}@keyframes shakeError{0%,to{transform:translateX(0)}10%,30%,50%,70%,90%{transform:translateX(-2px)}20%,40%,60%,80%{transform:translateX(2px)}}.btn-error-animation{animation:shakeError .8s cubic-bezier(.36,.07,.19,.97) both;background:var(--color-error)!important;color:var(--color-white)!important;box-shadow:0 0 5px rgba(255,51,51,.5)}.btn-success-animation{background:var(--color-success)!important;color:var(--color-white)!important;box-shadow:0 0 5px rgba(76,175,80,.5)}