.button{border-radius:var(--radius-md);display:inline-flex;align-items:center;justify-content:center;transition:all .3s;cursor:pointer;min-width:fit-content}.button--full-width{width:100%}.button:focus{outline:none}.button:disabled{cursor:not-allowed}.button--primary{background-color:hsl(var(--primary));color:white}.button--primary:focus-visible:not(:disabled),.button--primary:hover:not(:disabled){background-color:hsl(var(--primary-200))}.button--primary:active:not(:disabled){background-color:hsl(var(--primary-300))}.button--primary:disabled{background-color:hsl(var(--primary-disabled))}.button--secondary{background-color:hsl(var(--input));border:1px solid hsl(var(--border));color:hsl(var(--primary))}.button--secondary:focus-visible:not(:disabled),.button--secondary:hover:not(:disabled){border-color:hsl(var(--primary-200));color:hsl(var(--primary-200))}.button--secondary:active:not(:disabled){border-color:hsl(var(--primary-300));color:hsl(var(--primary-300))}.button--secondary:disabled{color:hsl(var(--primary-disabled));background-color:hsl(var(--input)/.5);border:none}.button--ghost{background-color:transparent;color:hsl(var(--primary))}.button--ghost:focus-visible:not(:disabled),.button--ghost:hover:not(:disabled){color:hsl(var(--primary-200))}.button--ghost:active:not(:disabled){color:hsl(var(--primary-300))}.button--ghost:disabled{opacity:.5;color:hsl(var(--primary-disabled))}.button--danger{background-color:hsl(var(--destructive));color:white}.button--danger:focus-visible:not(:disabled),.button--danger:hover:not(:disabled){background-color:hsl(var(--destructive-200))}.button--danger:active:not(:disabled){background-color:hsl(var(--destructive-300))}.button--danger:disabled{opacity:.5}.button--warning{background-color:hsl(var(--warning));color:white}.button--warning:focus-visible:not(:disabled),.button--warning:hover:not(:disabled){background-color:hsl(var(--warning-200))}.button--warning:active:not(:disabled){background-color:hsl(var(--warning-300))}.button--warning:disabled{opacity:.5}.button--success{background-color:hsl(var(--success));color:white}.button--success:focus-visible:not(:disabled),.button--success:hover:not(:disabled){background-color:hsl(var(--success-200))}.button--success:active:not(:disabled){background-color:hsl(var(--success-300))}.button--success:disabled{opacity:.5}.button--sm{font-size:.875rem;height:2rem}.button--sm.button--icon-only{width:2rem;padding:0}.button--sm:not(.button--icon-only){padding:0 .75rem}.button--md{font-size:1rem;height:2.5rem}.button--md.button--icon-only{width:2.5rem;padding:0}.button--md:not(.button--icon-only){padding:0 1rem}.button--lg{font-size:1.125rem;height:3rem}.button--lg.button--icon-only{width:3rem;padding:0}.button--lg:not(.button--icon-only){padding:0 1.5rem}.button--loading{opacity:.7;cursor:not-allowed}.button--loading .button__content{min-width:fit-content;white-space:nowrap}.button__content{display:flex;align-items:center;justify-content:center;gap:.5rem;min-width:fit-content}.button__spinner{animation:spin 1s linear infinite;width:1.25rem;height:1.25rem;flex-shrink:0}.button__spinner-circle{opacity:.25}.button__spinner-path{opacity:.75}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.button--sm .button__icon{width:20px;height:20px}.button--md .button__icon{width:24px;height:24px}.button--lg .button__icon{width:28px;height:28px}