.ui-button{border-radius:var(--radius);font-weight:500;font-family:var(--font-body);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;border:none;justify-content:center;align-items:center;gap:.5rem;display:inline-flex;position:relative;overflow:hidden}.ui-button:before{content:"";background:linear-gradient(90deg,#0000,#ffffff26,#0000);width:100%;height:100%;transition:left .5s;position:absolute;top:0;left:-100%}.ui-button:hover:before{left:100%}.ui-button svg,.ui-button .button-icon{flex-shrink:0;width:1rem;height:1rem}.ui-button--sm{border-radius:calc(var(--radius) - 2px);padding:.5rem .875rem;font-size:.8125rem}.ui-button--sm svg,.ui-button--sm .button-icon{width:.875rem;height:.875rem}.ui-button--md{padding:.625rem 1.25rem;font-size:.875rem}.ui-button--lg{padding:.875rem 1.75rem;font-size:1rem}.ui-button--lg svg,.ui-button--lg .button-icon{width:1.125rem;height:1.125rem}.ui-button--primary{background:var(--gradient-primary);color:hsl(var(--primary-foreground));box-shadow:0 2px 8px hsl(var(--primary) / .25)}.ui-button--primary:hover:not(:disabled){box-shadow:0 4px 16px hsl(var(--primary) / .35);transform:translateY(-1px)}.ui-button--primary:active:not(:disabled){box-shadow:0 2px 8px hsl(var(--primary) / .25);transform:translateY(0)}.ui-button--secondary{background:hsl(var(--background));color:hsl(var(--foreground));border:1px solid hsl(var(--border));box-shadow:var(--shadow-sm)}.ui-button--secondary:hover:not(:disabled){background:hsl(var(--accent));border-color:hsl(var(--accent));box-shadow:var(--shadow);transform:translateY(-1px)}.ui-button--secondary:active:not(:disabled){transform:translateY(0)}.ui-button--danger{background:hsl(var(--destructive));color:hsl(var(--destructive-foreground));box-shadow:0 2px 8px hsl(var(--destructive) / .25)}.ui-button--danger:hover:not(:disabled){background:hsl(var(--destructive) / .9);box-shadow:0 4px 16px hsl(var(--destructive) / .35);transform:translateY(-1px)}.ui-button--danger:active:not(:disabled){transform:translateY(0)}.ui-button--ghost{color:hsl(var(--foreground));background:0 0}.ui-button--ghost:before{display:none}.ui-button--ghost:hover:not(:disabled){background:hsl(var(--accent))}.ui-button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none!important;transform:none!important}.ui-button:disabled:before{display:none}.ui-button:focus-visible{outline:2px solid hsl(var(--ring));outline-offset:2px}.ui-button .animate-spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.ui-button--icon-only{aspect-ratio:1;padding:.5rem}.ui-button--icon-only.ui-button--sm{padding:.375rem}.ui-button--icon-only.ui-button--lg{padding:.75rem}
